home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Development Tools & Languages / Macintosh Common Lisp Related / PowerLisp / PowerLisp 1.1.sea / PowerLisp 1.1 / Library / format.lisp < prev    next >
MacBinary  |  1994-03-25  |  19.1 KB  |  [TEXT/ROSA]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Fri Mar 25 00:53:20 1994, modified Fri Mar 25 00:53:20 1994, creator 'ROSA', type ASCII, 18932 bytes "format.lisp" , at 0x4a74 428 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[ROSA]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0b 66 6f 72 6d 61 74 | 2e 6c 69 73 70 00 00 00 |..format|.lisp...|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 52 4f 53 | 41 01 00 00 00 00 00 00 |.TEXTROS|A.......|
|00000050| 00 00 00 00 00 49 f4 00 | 00 01 ac a9 b8 2c d0 a9 |.....I..|.....,..|
|00000060| b8 2c d0 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.,......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 6c 32 00 00 |........|....l2..|
|00000080| 3b 3b 3b 0d 3b 3b 3b 09 | 09 43 6f 70 79 72 69 67 |;;;.;;;.|.Copyrig|
|00000090| 68 74 20 a9 20 31 39 39 | 34 20 52 6f 67 65 72 20 |ht . 199|4 Roger |
|000000a0| 43 6f 72 6d 61 6e 2e 20 | 20 41 6c 6c 20 72 69 67 |Corman. | All rig|
|000000b0| 68 74 73 20 72 65 73 65 | 72 76 65 64 2e 0d 3b 3b |hts rese|rved..;;|
|000000c0| 3b 0d 3b 3b 3b 0d 3b 3b | 3b 09 09 43 6f 6d 6d 6f |;.;;;.;;|;..Commo|
|000000d0| 6e 20 4c 69 73 70 20 27 | 66 6f 72 6d 61 74 27 20 |n Lisp '|format' |
|000000e0| 66 75 6e 63 74 69 6f 6e | 2e 0d 3b 3b 3b 0d 28 69 |function|..;;;.(i|
|000000f0| 6e 2d 70 61 63 6b 61 67 | 65 20 3a 63 6f 6d 6d 6f |n-packag|e :commo|
|00000100| 6e 2d 6c 69 73 70 29 0d | 28 70 72 6f 76 69 64 65 |n-lisp).|(provide|
|00000110| 20 3a 66 6f 72 6d 61 74 | 29 0d 0d 28 64 65 66 75 | :format|)..(defu|
|00000120| 6e 20 66 6f 72 6d 61 74 | 20 28 64 65 73 74 20 63 |n format| (dest c|
|00000130| 6f 6e 74 72 6f 6c 2d 73 | 74 72 69 6e 67 20 26 72 |ontrol-s|tring &r|
|00000140| 65 73 74 20 61 72 67 75 | 6d 65 6e 74 73 29 0d 09 |est argu|ments)..|
|00000150| 28 6c 65 74 20 28 28 72 | 65 74 75 72 6e 2d 76 61 |(let ((r|eturn-va|
|00000160| 6c 75 65 20 6e 69 6c 29 | 29 0d 09 09 3b 3b 20 63 |lue nil)|)...;; c|
|00000170| 68 65 63 6b 20 66 6f 72 | 20 64 65 73 74 20 65 71 |heck for| dest eq|
|00000180| 75 61 6c 20 74 6f 20 74 | 20 6f 72 20 6e 69 6c 0d |ual to t| or nil.|
|00000190| 09 09 28 63 6f 6e 64 20 | 0d 09 09 09 28 28 6e 75 |..(cond |....((nu|
|000001a0| 6c 6c 20 64 65 73 74 29 | 20 0d 09 09 09 20 28 70 |ll dest)| .... (p|
|000001b0| 72 6f 67 6e 20 0d 09 09 | 09 09 28 73 65 74 66 20 |rogn ...|..(setf |
|000001c0| 64 65 73 74 20 28 6d 61 | 6b 65 2d 73 74 72 69 6e |dest (ma|ke-strin|
|000001d0| 67 2d 6f 75 74 70 75 74 | 2d 73 74 72 65 61 6d 29 |g-output|-stream)|
|000001e0| 29 0d 09 09 09 09 28 73 | 65 74 66 20 72 65 74 75 |).....(s|etf retu|
|000001f0| 72 6e 2d 76 61 6c 75 65 | 20 64 65 73 74 29 29 29 |rn-value| dest)))|
|00000200| 0d 09 09 09 28 28 65 71 | 20 64 65 73 74 20 74 29 |....((eq| dest t)|
|00000210| 20 28 73 65 74 66 20 64 | 65 73 74 20 2a 73 74 61 | (setf d|est *sta|
|00000220| 6e 64 61 72 64 2d 6f 75 | 74 70 75 74 2a 29 29 29 |ndard-ou|tput*)))|
|00000230| 0d 09 09 28 63 61 74 63 | 68 20 27 25 66 6f 72 6d |...(catc|h '%form|
|00000240| 61 74 2d 75 70 2d 61 6e | 64 2d 6f 75 74 0d 09 09 |at-up-an|d-out...|
|00000250| 09 28 25 66 6f 72 6d 61 | 74 2d 6c 69 73 74 20 64 |.(%forma|t-list d|
|00000260| 65 73 74 20 63 6f 6e 74 | 72 6f 6c 2d 73 74 72 69 |est cont|rol-stri|
|00000270| 6e 67 20 61 72 67 75 6d | 65 6e 74 73 29 29 0d 09 |ng argum|ents))..|
|00000280| 09 28 69 66 20 72 65 74 | 75 72 6e 2d 76 61 6c 75 |.(if ret|urn-valu|
|00000290| 65 20 28 67 65 74 2d 6f | 75 74 70 75 74 2d 73 74 |e (get-o|utput-st|
|000002a0| 72 65 61 6d 2d 73 74 72 | 69 6e 67 20 72 65 74 75 |ream-str|ing retu|
|000002b0| 72 6e 2d 76 61 6c 75 65 | 29 29 29 29 0d 0d 28 64 |rn-value|))))..(d|
|000002c0| 65 66 75 6e 20 25 66 6f | 72 6d 61 74 2d 6c 69 73 |efun %fo|rmat-lis|
|000002d0| 74 20 28 64 65 73 74 20 | 63 6f 6e 74 72 6f 6c 2d |t (dest |control-|
|000002e0| 73 74 72 69 6e 67 20 61 | 72 67 75 6d 65 6e 74 73 |string a|rguments|
|000002f0| 29 0d 09 3b 3b 20 73 63 | 61 6e 20 63 6f 6e 74 72 |)..;; sc|an contr|
|00000300| 6f 6c 20 73 74 72 69 6e | 67 20 61 6e 64 20 64 69 |ol strin|g and di|
|00000310| 73 70 61 74 63 68 20 74 | 6f 20 6f 75 74 70 75 74 |spatch t|o output|
|00000320| 20 66 75 6e 63 74 69 6f | 6e 73 0d 09 28 64 6f 20 | functio|ns..(do |
|00000330| 28 28 69 6e 64 65 78 20 | 30 29 0d 09 09 20 28 61 |((index |0)... (a|
|00000340| 72 67 2d 69 6e 64 65 78 | 20 30 29 0d 09 09 20 28 |rg-index| 0)... (|
|00000350| 6c 65 6e 67 74 68 20 28 | 6c 65 6e 67 74 68 20 63 |length (|length c|
|00000360| 6f 6e 74 72 6f 6c 2d 73 | 74 72 69 6e 67 29 29 0d |ontrol-s|tring)).|
|00000370| 09 09 20 28 61 74 73 69 | 67 6e 2d 6d 6f 64 69 66 |.. (atsi|gn-modif|
|00000380| 69 65 72 20 6e 69 6c 20 | 6e 69 6c 29 0d 09 09 20 |ier nil |nil)... |
|00000390| 28 63 6f 6c 6f 6e 2d 6d | 6f 64 69 66 69 65 72 20 |(colon-m|odifier |
|000003a0| 6e 69 6c 20 6e 69 6c 29 | 0d 09 09 20 64 69 73 70 |nil nil)|... disp|
|000003b0| 61 74 63 68 2d 66 75 6e | 63 0d 09 09 20 28 70 61 |atch-fun|c... (pa|
|000003c0| 72 61 6d 65 74 65 72 73 | 20 6e 69 6c 29 0d 09 09 |rameters| nil)...|
|000003d0| 20 63 6f 6e 74 72 6f 6c | 0d 09 09 20 63 68 61 72 | control|... char|
|000003e0| 29 0d 09 09 28 28 3e 3d | 20 69 6e 64 65 78 20 6c |)...((>=| index l|
|000003f0| 65 6e 67 74 68 29 20 61 | 72 67 2d 69 6e 64 65 78 |ength) a|rg-index|
|00000400| 29 0d 09 09 28 73 65 74 | 66 20 63 68 61 72 20 28 |)...(set|f char (|
|00000410| 63 68 61 72 20 63 6f 6e | 74 72 6f 6c 2d 73 74 72 |char con|trol-str|
|00000420| 69 6e 67 20 69 6e 64 65 | 78 29 29 0d 09 09 28 69 |ing inde|x))...(i|
|00000430| 66 20 28 63 68 61 72 3d | 20 63 68 61 72 20 23 5c |f (char=| char #\|
|00000440| 7e 29 0d 09 09 09 3b 3b | 20 70 72 6f 63 65 73 73 |~)....;;| process|
|00000450| 20 64 69 72 65 63 74 69 | 76 65 0d 09 09 09 28 70 | directi|ve....(p|
|00000460| 72 6f 67 6e 0d 09 09 09 | 09 3b 3b 20 67 65 74 20 |rogn....|.;; get |
|00000470| 70 61 72 61 6d 65 74 65 | 72 73 0d 09 09 09 09 28 |paramete|rs.....(|
|00000480| 69 6e 63 66 20 69 6e 64 | 65 78 29 0d 09 09 09 09 |incf ind|ex).....|
|00000490| 28 6d 75 6c 74 69 70 6c | 65 2d 76 61 6c 75 65 2d |(multipl|e-value-|
|000004a0| 73 65 74 71 20 28 70 61 | 72 61 6d 65 74 65 72 73 |setq (pa|rameters|
|000004b0| 20 69 6e 64 65 78 29 20 | 0d 09 09 09 09 09 28 25 | index) |......(%|
|000004c0| 67 65 74 2d 70 61 72 61 | 6d 73 20 63 6f 6e 74 72 |get-para|ms contr|
|000004d0| 6f 6c 2d 73 74 72 69 6e | 67 20 69 6e 64 65 78 29 |ol-strin|g index)|
|000004e0| 29 0d 09 0d 09 09 09 09 | 3b 3b 20 63 68 65 63 6b |).......|;; check|
|000004f0| 20 66 6f 72 20 6d 6f 64 | 69 66 69 65 72 73 0d 09 | for mod|ifiers..|
|00000500| 09 09 09 28 64 6f 74 69 | 6d 65 73 20 28 69 20 32 |...(doti|mes (i 2|
|00000510| 29 0d 09 09 09 09 09 28 | 69 66 20 28 3e 3d 20 69 |)......(|if (>= i|
|00000520| 6e 64 65 78 20 6c 65 6e | 67 74 68 29 20 28 72 65 |ndex len|gth) (re|
|00000530| 74 75 72 6e 29 29 0d 09 | 09 09 09 09 28 73 65 74 |turn))..|....(set|
|00000540| 71 20 63 68 61 72 20 28 | 63 68 61 72 20 63 6f 6e |q char (|char con|
|00000550| 74 72 6f 6c 2d 73 74 72 | 69 6e 67 20 69 6e 64 65 |trol-str|ing inde|
|00000560| 78 29 29 0d 09 09 09 09 | 09 28 69 66 20 28 63 68 |x)).....|.(if (ch|
|00000570| 61 72 3d 20 63 68 61 72 | 20 23 5c 40 29 0d 09 09 |ar= char| #\@)...|
|00000580| 09 09 09 09 28 73 65 74 | 71 20 61 74 73 69 67 6e |....(set|q atsign|
|00000590| 2d 6d 6f 64 69 66 69 65 | 72 20 74 29 0d 09 09 09 |-modifie|r t)....|
|000005a0| 09 09 09 28 69 66 20 28 | 63 68 61 72 3d 20 63 68 |...(if (|char= ch|
|000005b0| 61 72 20 23 5c 3a 29 0d | 09 09 09 09 09 09 09 28 |ar #\:).|.......(|
|000005c0| 73 65 74 71 20 63 6f 6c | 6f 6e 2d 6d 6f 64 69 66 |setq col|on-modif|
|000005d0| 69 65 72 20 74 29 0d 09 | 09 09 09 09 09 09 28 72 |ier t)..|......(r|
|000005e0| 65 74 75 72 6e 29 29 29 | 0d 09 09 09 09 09 28 69 |eturn)))|......(i|
|000005f0| 6e 63 66 20 69 6e 64 65 | 78 29 29 0d 0d 09 09 09 |ncf inde|x)).....|
|00000600| 09 3b 3b 20 74 68 65 20 | 6e 65 78 74 20 63 68 61 |.;; the |next cha|
|00000610| 72 61 63 74 65 72 20 73 | 68 6f 75 6c 64 20 62 65 |racter s|hould be|
|00000620| 20 74 68 65 20 66 6f 72 | 6d 61 74 0d 09 09 09 09 | the for|mat.....|
|00000630| 3b 3b 20 64 69 72 65 63 | 74 69 76 65 20 63 68 61 |;; direc|tive cha|
|00000640| 72 61 63 74 65 72 0d 09 | 09 09 09 28 69 66 20 28 |racter..|...(if (|
|00000650| 3e 3d 20 69 6e 64 65 78 | 20 6c 65 6e 67 74 68 29 |>= index| length)|
|00000660| 0d 09 09 09 09 09 28 65 | 72 72 6f 72 20 22 49 6e |......(e|rror "In|
|00000670| 76 61 6c 69 64 20 66 6f | 72 6d 61 74 20 64 69 72 |valid fo|rmat dir|
|00000680| 65 63 74 69 76 65 3a 20 | 7e 41 22 20 63 6f 6e 74 |ective: |~A" cont|
|00000690| 72 6f 6c 2d 73 74 72 69 | 6e 67 29 29 0d 09 09 09 |rol-stri|ng))....|
|000006a0| 09 28 73 65 74 71 20 63 | 68 61 72 20 28 63 68 61 |.(setq c|har (cha|
|000006b0| 72 20 63 6f 6e 74 72 6f | 6c 2d 73 74 72 69 6e 67 |r contro|l-string|
|000006c0| 20 69 6e 64 65 78 29 29 | 0d 09 09 09 09 28 69 6e | index))|.....(in|
|000006d0| 63 66 20 69 6e 64 65 78 | 29 0d 09 09 09 09 28 73 |cf index|).....(s|
|000006e0| 65 74 66 20 64 69 73 70 | 61 74 63 68 2d 66 75 6e |etf disp|atch-fun|
|000006f0| 63 20 0d 09 09 09 09 09 | 28 25 67 65 74 2d 66 6f |c ......|(%get-fo|
|00000700| 72 6d 61 74 2d 64 69 73 | 70 61 74 63 68 2d 66 75 |rmat-dis|patch-fu|
|00000710| 6e 63 20 63 68 61 72 29 | 29 0d 09 09 09 09 28 69 |nc char)|).....(i|
|00000720| 66 20 28 6e 75 6c 6c 20 | 64 69 73 70 61 74 63 68 |f (null |dispatch|
|00000730| 2d 66 75 6e 63 29 0d 09 | 09 09 09 09 28 65 72 72 |-func)..|....(err|
|00000740| 6f 72 20 22 49 6e 76 61 | 6c 69 64 20 66 6f 72 6d |or "Inva|lid form|
|00000750| 61 74 20 64 69 72 65 63 | 74 69 76 65 20 3a 20 7e |at direc|tive : ~|
|00000760| 41 22 20 63 6f 6e 74 72 | 6f 6c 2d 73 74 72 69 6e |A" contr|ol-strin|
|00000770| 67 29 29 0d 09 09 09 09 | 28 73 65 74 71 20 63 6f |g)).....|(setq co|
|00000780| 6e 74 72 6f 6c 20 28 6c | 69 73 74 20 63 6f 6e 74 |ntrol (l|ist cont|
|00000790| 72 6f 6c 2d 73 74 72 69 | 6e 67 20 69 6e 64 65 78 |rol-stri|ng index|
|000007a0| 29 29 0d 09 09 09 09 28 | 73 65 74 71 20 61 72 67 |)).....(|setq arg|
|000007b0| 2d 69 6e 64 65 78 20 0d | 09 09 09 09 09 28 61 70 |-index .|.....(ap|
|000007c0| 70 6c 79 20 64 69 73 70 | 61 74 63 68 2d 66 75 6e |ply disp|atch-fun|
|000007d0| 63 20 0d 09 09 09 09 09 | 09 64 65 73 74 20 0d 09 |c ......|.dest ..|
|000007e0| 09 09 09 09 09 61 72 67 | 75 6d 65 6e 74 73 20 61 |.....arg|uments a|
|000007f0| 72 67 2d 69 6e 64 65 78 | 20 0d 09 09 09 09 09 09 |rg-index| .......|
|00000800| 61 74 73 69 67 6e 2d 6d | 6f 64 69 66 69 65 72 20 |atsign-m|odifier |
|00000810| 63 6f 6c 6f 6e 2d 6d 6f | 64 69 66 69 65 72 20 0d |colon-mo|difier .|
|00000820| 09 09 09 09 09 09 63 6f | 6e 74 72 6f 6c 0d 09 09 |......co|ntrol...|
|00000830| 09 09 09 09 70 61 72 61 | 6d 65 74 65 72 73 29 29 |....para|meters))|
|00000840| 0d 09 09 09 09 28 73 65 | 74 71 20 69 6e 64 65 78 |.....(se|tq index|
|00000850| 20 28 63 61 64 72 20 63 | 6f 6e 74 72 6f 6c 29 29 | (cadr c|ontrol))|
|00000860| 29 20 09 09 0d 0d 09 09 | 09 3b 3b 20 6a 75 73 74 |) ......|.;; just|
|00000870| 20 6f 75 74 70 75 74 20 | 74 68 65 20 63 68 61 72 | output |the char|
|00000880| 61 63 74 65 72 0d 09 09 | 09 28 70 72 6f 67 6e 0d |acter...|.(progn.|
|00000890| 09 09 09 09 28 77 72 69 | 74 65 2d 63 68 61 72 20 |....(wri|te-char |
|000008a0| 63 68 61 72 20 64 65 73 | 74 29 0d 09 09 09 09 28 |char des|t).....(|
|000008b0| 69 6e 63 66 20 69 6e 64 | 65 78 29 29 29 29 29 0d |incf ind|ex))))).|
|000008c0| 0d 0d 3b 3b 3b 0d 3b 3b | 3b 0d 3b 3b 3b 09 52 65 |..;;;.;;|;.;;;.Re|
|000008d0| 74 75 72 6e 73 20 74 77 | 6f 20 76 61 6c 75 65 73 |turns tw|o values|
|000008e0| 3a 20 74 68 65 20 6c 69 | 73 74 20 6f 66 20 70 61 |: the li|st of pa|
|000008f0| 72 61 6d 73 20 66 6f 75 | 6e 64 20 61 6e 64 20 74 |rams fou|nd and t|
|00000900| 68 65 0d 3b 3b 3b 20 75 | 70 64 61 74 65 64 20 69 |he.;;; u|pdated i|
|00000910| 6e 64 65 78 2e 0d 3b 3b | 0d 28 64 65 66 75 6e 20 |ndex..;;|.(defun |
|00000920| 25 67 65 74 2d 70 61 72 | 61 6d 73 20 28 63 6f 6e |%get-par|ams (con|
|00000930| 74 72 6f 6c 2d 73 74 72 | 69 6e 67 20 69 6e 64 65 |trol-str|ing inde|
|00000940| 78 20 26 61 75 78 20 28 | 70 61 72 61 6d 73 20 6e |x &aux (|params n|
|00000950| 69 6c 29 29 0d 09 28 64 | 6f 20 28 69 6e 74 0d 09 |il))..(d|o (int..|
|00000960| 09 20 63 0d 09 09 20 28 | 6c 65 6e 67 74 68 20 28 |. c... (|length (|
|00000970| 6c 65 6e 67 74 68 20 63 | 6f 6e 74 72 6f 6c 2d 73 |length c|ontrol-s|
|00000980| 74 72 69 6e 67 29 29 29 | 0d 09 09 28 28 3e 3d 20 |tring)))|...((>= |
|00000990| 69 6e 64 65 78 20 6c 65 | 6e 67 74 68 29 29 0d 09 |index le|ngth))..|
|000009a0| 09 28 69 66 20 28 63 68 | 61 72 3d 20 28 63 68 61 |.(if (ch|ar= (cha|
|000009b0| 72 20 63 6f 6e 74 72 6f | 6c 2d 73 74 72 69 6e 67 |r contro|l-string|
|000009c0| 20 69 6e 64 65 78 29 20 | 23 5c 4e 65 77 6c 69 6e | index) |#\Newlin|
|000009d0| 65 29 0d 09 09 09 28 72 | 65 74 75 72 6e 29 29 0d |e)....(r|eturn)).|
|000009e0| 09 09 28 6d 75 6c 74 69 | 70 6c 65 2d 76 61 6c 75 |..(multi|ple-valu|
|000009f0| 65 2d 73 65 74 71 20 28 | 69 6e 74 20 69 6e 64 65 |e-setq (|int inde|
|00000a00| 78 29 20 0d 09 09 09 28 | 70 61 72 73 65 2d 69 6e |x) ....(|parse-in|
|00000a10| 74 65 67 65 72 20 63 6f | 6e 74 72 6f 6c 2d 73 74 |teger co|ntrol-st|
|00000a20| 72 69 6e 67 20 3a 73 74 | 61 72 74 20 69 6e 64 65 |ring :st|art inde|
|00000a30| 78 0d 09 09 09 09 3a 6a | 75 6e 6b 2d 61 6c 6c 6f |x.....:j|unk-allo|
|00000a40| 77 65 64 20 74 29 29 0d | 09 09 28 73 65 74 71 20 |wed t)).|..(setq |
|00000a50| 63 20 28 63 68 61 72 20 | 63 6f 6e 74 72 6f 6c 2d |c (char |control-|
|00000a60| 73 74 72 69 6e 67 20 69 | 6e 64 65 78 29 29 0d 09 |string i|ndex))..|
|00000a70| 09 28 69 66 20 69 6e 74 | 20 0d 09 09 09 28 70 75 |.(if int| ....(pu|
|00000a80| 73 68 20 69 6e 74 20 70 | 61 72 61 6d 73 29 0d 09 |sh int p|arams)..|
|00000a90| 09 09 28 69 66 20 28 63 | 68 61 72 3d 20 63 20 23 |..(if (c|har= c #|
|00000aa0| 5c 2c 29 20 0d 09 09 09 | 09 28 70 75 73 68 20 6e |\,) ....|.(push n|
|00000ab0| 69 6c 20 70 61 72 61 6d | 73 29 29 29 0d 09 09 28 |il param|s)))...(|
|00000ac0| 69 66 20 28 63 68 61 72 | 3d 20 63 20 23 5c 2c 29 |if (char|= c #\,)|
|00000ad0| 20 28 69 6e 63 66 20 69 | 6e 64 65 78 29 20 28 72 | (incf i|ndex) (r|
|00000ae0| 65 74 75 72 6e 29 29 29 | 0d 09 28 76 61 6c 75 65 |eturn)))|..(value|
|00000af0| 73 20 28 6e 72 65 76 65 | 72 73 65 20 70 61 72 61 |s (nreve|rse para|
|00000b00| 6d 73 29 20 69 6e 64 65 | 78 29 29 0d 09 09 0d 3b |ms) inde|x))....;|
|00000b10| 3b 3b 20 46 6f 72 6d 61 | 74 20 64 69 73 70 61 74 |;; Forma|t dispat|
|00000b20| 63 68 20 66 75 6e 63 74 | 69 6f 6e 73 20 74 61 6b |ch funct|ions tak|
|00000b30| 65 20 61 20 73 74 72 65 | 61 6d 2c 20 61 72 67 75 |e a stre|am, argu|
|00000b40| 6d 65 6e 74 20 6c 69 73 | 74 2c 0d 3b 3b 3b 20 40 |ment lis|t,.;;; @|
|00000b50| 2d 6d 6f 64 69 66 69 65 | 72 20 61 6e 64 20 3a 2d |-modifie|r and :-|
|00000b60| 6d 6f 64 69 66 69 65 72 | 20 61 72 67 75 6d 65 6e |modifier| argumen|
|00000b70| 74 73 2c 20 66 6f 6c 6c | 6f 77 65 64 20 62 79 20 |ts, foll|owed by |
|00000b80| 61 6e 79 20 70 61 73 73 | 65 64 0d 3b 3b 3b 20 70 |any pass|ed.;;; p|
|00000b90| 61 72 61 6d 65 74 65 72 | 73 2e 20 41 6e 79 20 70 |arameter|s. Any p|
|00000ba0| 61 73 73 65 64 20 70 61 | 72 61 6d 65 74 65 72 73 |assed pa|rameters|
|00000bb0| 20 77 68 69 63 68 20 61 | 72 65 20 6e 69 6c 20 73 | which a|re nil s|
|00000bc0| 68 6f 75 6c 64 20 62 65 | 0d 3b 3b 3b 20 61 73 73 |hould be|.;;; ass|
|00000bd0| 75 6d 65 64 20 74 6f 20 | 62 65 20 72 65 71 75 65 |umed to |be reque|
|00000be0| 73 74 69 6e 67 20 74 68 | 65 20 64 65 66 61 75 6c |sting th|e defaul|
|00000bf0| 74 2e 20 54 68 65 20 64 | 69 73 70 61 74 63 68 20 |t. The d|ispatch |
|00000c00| 66 75 6e 63 74 69 6f 6e | 73 0d 3b 3b 3b 20 73 68 |function|s.;;; sh|
|00000c10| 6f 75 6c 64 20 72 65 74 | 75 72 6e 20 74 68 65 20 |ould ret|urn the |
|00000c20| 72 65 6d 61 69 6e 69 6e | 67 20 61 72 67 75 6d 65 |remainin|g argume|
|00000c30| 6e 74 20 6c 69 73 74 20 | 28 6d 69 73 73 69 6e 67 |nt list |(missing|
|00000c40| 20 74 68 65 0d 3b 3b 3b | 20 61 72 67 75 6d 65 6e | the.;;;| argumen|
|00000c50| 74 73 20 74 68 61 74 20 | 74 68 65 79 20 70 72 6f |ts that |they pro|
|00000c60| 63 65 73 73 65 64 2e 0d | 3b 3b 3b 0d 0d 28 64 65 |cessed..|;;;..(de|
|00000c70| 66 76 61 72 20 2a 66 6f | 72 6d 61 74 2d 66 75 6e |fvar *fo|rmat-fun|
|00000c80| 63 74 69 6f 6e 73 2a 20 | 23 31 32 38 28 29 29 0d |ctions* |#128()).|
|00000c90| 0d 28 64 65 66 75 6e 20 | 25 73 65 74 2d 66 6f 72 |.(defun |%set-for|
|00000ca0| 6d 61 74 2d 64 69 73 70 | 61 74 63 68 2d 66 75 6e |mat-disp|atch-fun|
|00000cb0| 63 20 28 63 68 61 72 20 | 66 75 6e 63 29 0d 09 28 |c (char |func)..(|
|00000cc0| 6c 65 74 20 28 28 69 6e | 64 65 78 20 28 63 68 61 |let ((in|dex (cha|
|00000cd0| 72 2d 63 6f 64 65 20 28 | 63 68 61 72 2d 75 70 63 |r-code (|char-upc|
|00000ce0| 61 73 65 20 63 68 61 72 | 29 29 29 29 0d 09 09 28 |ase char|))))...(|
|00000cf0| 73 65 74 66 20 28 65 6c | 74 20 2a 66 6f 72 6d 61 |setf (el|t *forma|
|00000d00| 74 2d 66 75 6e 63 74 69 | 6f 6e 73 2a 20 69 6e 64 |t-functi|ons* ind|
|00000d10| 65 78 29 20 66 75 6e 63 | 29 29 29 0d 0d 28 64 65 |ex) func|)))..(de|
|00000d20| 66 75 6e 20 25 67 65 74 | 2d 66 6f 72 6d 61 74 2d |fun %get|-format-|
|00000d30| 64 69 73 70 61 74 63 68 | 2d 66 75 6e 63 20 28 63 |dispatch|-func (c|
|00000d40| 68 61 72 29 0d 09 28 6c | 65 74 20 28 28 69 6e 64 |har)..(l|et ((ind|
|00000d50| 65 78 20 28 63 68 61 72 | 2d 63 6f 64 65 20 28 63 |ex (char|-code (c|
|00000d60| 68 61 72 2d 75 70 63 61 | 73 65 20 63 68 61 72 29 |har-upca|se char)|
|00000d70| 29 29 29 0d 09 09 28 65 | 6c 74 20 2a 66 6f 72 6d |)))...(e|lt *form|
|00000d80| 61 74 2d 66 75 6e 63 74 | 69 6f 6e 73 2a 20 69 6e |at-funct|ions* in|
|00000d90| 64 65 78 29 29 29 0d 0d | 28 25 73 65 74 2d 66 6f |dex)))..|(%set-fo|
|00000da0| 72 6d 61 74 2d 64 69 73 | 70 61 74 63 68 2d 66 75 |rmat-dis|patch-fu|
|00000db0| 6e 63 20 23 5c 41 20 0d | 09 23 27 28 6c 61 6d 62 |nc #\A .|.#'(lamb|
|00000dc0| 64 61 20 28 73 74 72 65 | 61 6d 20 61 72 67 73 20 |da (stre|am args |
|00000dd0| 69 6e 64 65 78 20 61 74 | 73 69 67 6e 2d 6d 6f 64 |index at|sign-mod|
|00000de0| 69 66 69 65 72 20 63 6f | 6c 6f 6e 2d 6d 6f 64 69 |ifier co|lon-modi|
|00000df0| 66 69 65 72 20 63 6f 6e | 74 72 6f 6c 0d 09 09 09 |fier con|trol....|
|00000e00| 09 26 6f 70 74 69 6f 6e | 61 6c 20 6d 69 6e 63 6f |.&option|al minco|
|00000e10| 6c 20 63 6f 6c 69 6e 63 | 20 0d 09 09 09 09 09 09 |l colinc| .......|
|00000e20| 6d 69 6e 70 61 64 20 70 | 61 64 63 68 61 72 29 0d |minpad p|adchar).|
|00000e30| 09 09 28 73 65 74 71 20 | 61 72 67 73 20 28 6e 74 |..(setq |args (nt|
|00000e40| 68 63 64 72 20 69 6e 64 | 65 78 20 61 72 67 73 29 |hcdr ind|ex args)|
|00000e50| 29 0d 09 09 28 69 66 20 | 28 6e 75 6c 6c 20 61 72 |)...(if |(null ar|
|00000e60| 67 73 29 20 0d 09 09 09 | 28 65 72 72 6f 72 20 22 |gs) ....|(error "|
|00000e70| 4e 6f 74 20 65 6e 6f 75 | 67 68 20 61 72 67 73 20 |Not enou|gh args |
|00000e80| 66 6f 72 20 7e 41 41 20 | 66 6f 72 6d 61 74 20 64 |for ~AA |format d|
|00000e90| 69 72 65 63 74 69 76 65 | 22 20 23 5c 7e 29 29 0d |irective|" #\~)).|
|00000ea0| 0d 09 09 3b 3b 20 69 6e | 69 74 69 61 6c 69 7a 65 |...;; in|itialize|
|00000eb0| 20 64 65 66 61 75 6c 74 | 73 0d 09 09 28 75 6e 6c | default|s...(unl|
|00000ec0| 65 73 73 20 6d 69 6e 63 | 6f 6c 20 28 73 65 74 71 |ess minc|ol (setq|
|00000ed0| 20 6d 69 6e 63 6f 6c 20 | 30 29 29 0d 09 09 28 75 | mincol |0))...(u|
|00000ee0| 6e 6c 65 73 73 20 63 6f | 6c 69 6e 63 20 28 73 65 |nless co|linc (se|
|00000ef0| 74 71 20 63 6f 6c 69 6e | 63 20 31 29 29 0d 09 09 |tq colin|c 1))...|
|00000f00| 28 75 6e 6c 65 73 73 20 | 6d 69 6e 70 61 64 20 28 |(unless |minpad (|
|00000f10| 73 65 74 71 20 6d 69 6e | 70 61 64 20 30 29 29 0d |setq min|pad 0)).|
|00000f20| 09 09 28 73 65 74 71 20 | 70 61 64 63 68 61 72 20 |..(setq |padchar |
|00000f30| 28 69 66 20 70 61 64 63 | 68 61 72 20 28 69 6e 74 |(if padc|har (int|
|00000f40| 2d 63 68 61 72 20 70 61 | 64 63 68 61 72 29 20 23 |-char pa|dchar) #|
|00000f50| 5c 53 70 61 63 65 29 29 | 0d 0d 09 09 28 6c 65 74 |\Space))|....(let|
|00000f60| 20 28 28 2a 70 72 69 6e | 74 2d 65 73 63 61 70 65 | ((*prin|t-escape|
|00000f70| 2a 20 6e 69 6c 29 0d 09 | 09 20 20 09 20 20 28 61 |* nil)..|. . (a|
|00000f80| 72 67 20 28 63 61 72 20 | 61 72 67 73 29 29 29 0d |rg (car |args))).|
|00000f90| 09 09 09 28 69 66 20 28 | 61 6e 64 20 28 6e 75 6c |...(if (|and (nul|
|00000fa0| 6c 20 61 72 67 29 20 63 | 6f 6c 6f 6e 2d 6d 6f 64 |l arg) c|olon-mod|
|00000fb0| 69 66 69 65 72 29 0d 09 | 09 09 09 28 73 65 74 71 |ifier)..|...(setq|
|00000fc0| 20 61 72 67 20 22 28 29 | 22 29 29 0d 09 09 09 28 | arg "()|"))....(|
|00000fd0| 69 66 20 61 74 73 69 67 | 6e 2d 6d 6f 64 69 66 69 |if atsig|n-modifi|
|00000fe0| 65 72 0d 09 09 09 09 3b | 3b 20 6e 65 65 64 74 6f |er.....;|; needto|
|00000ff0| 20 6f 75 74 70 75 74 20 | 74 6f 20 73 74 72 69 6e | output |to strin|
|00001000| 67 20 74 6f 20 69 6e 73 | 65 72 74 20 70 61 64 64 |g to ins|ert padd|
|00001010| 69 6e 67 20 69 6e 20 66 | 72 6f 6e 74 0d 09 09 09 |ing in f|ront....|
|00001020| 09 28 6c 65 74 20 28 28 | 73 20 28 77 69 74 68 2d |.(let ((|s (with-|
|00001030| 6f 75 74 70 75 74 2d 74 | 6f 2d 73 74 72 69 6e 67 |output-t|o-string|
|00001040| 20 28 78 29 20 28 70 72 | 69 6e 63 20 61 72 67 20 | (x) (pr|inc arg |
|00001050| 78 29 29 29 20 0d 09 09 | 09 09 09 20 20 6c 65 6e |x))) ...|... len|
|00001060| 67 74 68 29 0d 09 09 09 | 09 09 28 64 6f 74 69 6d |gth)....|..(dotim|
|00001070| 65 73 20 28 69 20 6d 69 | 6e 70 61 64 29 20 28 77 |es (i mi|npad) (w|
|00001080| 72 69 74 65 2d 63 68 61 | 72 20 70 61 64 63 68 61 |rite-cha|r padcha|
|00001090| 72 20 73 74 72 65 61 6d | 29 29 0d 09 09 09 09 09 |r stream|))......|
|000010a0| 28 73 65 74 71 20 6c 65 | 6e 67 74 68 20 28 6c 65 |(setq le|ngth (le|
|000010b0| 6e 67 74 68 20 73 29 29 | 0d 20 09 09 09 09 09 28 |ngth s))|. .....(|
|000010c0| 69 6e 63 66 20 6c 65 6e | 67 74 68 20 6d 69 6e 70 |incf len|gth minp|
|000010d0| 61 64 29 0d 09 09 09 09 | 09 28 64 6f 20 28 29 0d |ad).....|.(do ().|
|000010e0| 09 09 09 09 09 09 28 28 | 3e 3d 20 6c 65 6e 67 74 |......((|>= lengt|
|000010f0| 68 20 6d 69 6e 63 6f 6c | 29 29 0d 09 09 09 09 09 |h mincol|))......|
|00001100| 09 28 64 6f 74 69 6d 65 | 73 20 28 69 20 63 6f 6c |.(dotime|s (i col|
|00001110| 69 6e 63 29 20 28 77 72 | 69 74 65 2d 63 68 61 72 |inc) (wr|ite-char|
|00001120| 20 70 61 64 63 68 61 72 | 20 73 74 72 65 61 6d 29 | padchar| stream)|
|00001130| 29 0d 09 09 09 09 09 09 | 28 69 6e 63 66 20 6c 65 |).......|(incf le|
|00001140| 6e 67 74 68 20 63 6f 6c | 69 6e 63 29 29 0d 09 09 |ngth col|inc))...|
|00001150| 09 09 09 28 70 72 69 6e | 63 20 73 20 73 74 72 65 |...(prin|c s stre|
|00001160| 61 6d 29 29 0d 09 09 09 | 09 28 6c 65 74 20 28 6c |am))....|.(let (l|
|00001170| 65 6e 67 74 68 20 28 73 | 74 61 72 74 2d 70 6f 73 |ength (s|tart-pos|
|00001180| 20 28 73 74 72 65 61 6d | 2d 63 6f 6c 75 6d 6e 20 | (stream|-column |
|00001190| 73 74 72 65 61 6d 29 29 | 29 0d 09 09 09 09 09 28 |stream))|)......(|
|000011a0| 70 72 69 6e 63 20 61 72 | 67 20 73 74 72 65 61 6d |princ ar|g stream|
|000011b0| 29 0d 09 09 09 09 09 28 | 73 65 74 71 20 6c 65 6e |)......(|setq len|
|000011c0| 67 74 68 20 28 2d 20 28 | 73 74 72 65 61 6d 2d 63 |gth (- (|stream-c|
|000011d0| 6f 6c 75 6d 6e 20 73 74 | 72 65 61 6d 29 20 73 74 |olumn st|ream) st|
|000011e0| 61 72 74 2d 70 6f 73 29 | 29 0d 09 09 09 09 09 28 |art-pos)|)......(|
|000011f0| 69 66 20 28 3c 20 6c 65 | 6e 67 74 68 20 30 29 20 |if (< le|ngth 0) |
|00001200| 28 73 65 74 71 20 6c 65 | 6e 67 74 68 20 30 29 29 |(setq le|ngth 0))|
|00001210| 0d 09 09 09 09 09 28 64 | 6f 74 69 6d 65 73 20 28 |......(d|otimes (|
|00001220| 69 20 6d 69 6e 70 61 64 | 29 20 28 77 72 69 74 65 |i minpad|) (write|
|00001230| 2d 63 68 61 72 20 70 61 | 64 63 68 61 72 20 73 74 |-char pa|dchar st|
|00001240| 72 65 61 6d 29 29 0d 20 | 09 09 09 09 09 28 69 6e |ream)). |.....(in|
|00001250| 63 66 20 6c 65 6e 67 74 | 68 20 6d 69 6e 70 61 64 |cf lengt|h minpad|
|00001260| 29 0d 09 09 09 09 09 28 | 64 6f 20 28 29 0d 09 09 |)......(|do ()...|
|00001270| 09 09 09 09 28 28 3e 3d | 20 6c 65 6e 67 74 68 20 |....((>=| length |
|00001280| 6d 69 6e 63 6f 6c 29 29 | 0d 09 09 09 09 09 09 28 |mincol))|.......(|
|00001290| 64 6f 74 69 6d 65 73 20 | 28 69 20 63 6f 6c 69 6e |dotimes |(i colin|
|000012a0| 63 29 20 28 77 72 69 74 | 65 2d 63 68 61 72 20 70 |c) (writ|e-char p|
|000012b0| 61 64 63 68 61 72 20 73 | 74 72 65 61 6d 29 29 0d |adchar s|tream)).|
|000012c0| 09 09 09 09 09 09 28 69 | 6e 63 66 20 6c 65 6e 67 |......(i|ncf leng|
|000012d0| 74 68 20 63 6f 6c 69 6e | 63 29 29 29 29 29 0d 09 |th colin|c)))))..|
|000012e0| 09 09 28 31 2b 20 69 6e | 64 65 78 29 29 29 0d 0d |..(1+ in|dex)))..|
|000012f0| 28 25 73 65 74 2d 66 6f | 72 6d 61 74 2d 64 69 73 |(%set-fo|rmat-dis|
|00001300| 70 61 74 63 68 2d 66 75 | 6e 63 20 23 5c 53 20 0d |patch-fu|nc #\S .|
|00001310| 09 23 27 28 6c 61 6d 62 | 64 61 20 28 73 74 72 65 |.#'(lamb|da (stre|
|00001320| 61 6d 20 61 72 67 73 20 | 69 6e 64 65 78 20 61 74 |am args |index at|
|00001330| 73 69 67 6e 2d 6d 6f 64 | 69 66 69 65 72 20 63 6f |sign-mod|ifier co|
|00001340| 6c 6f 6e 2d 6d 6f 64 69 | 66 69 65 72 20 63 6f 6e |lon-modi|fier con|
|00001350| 74 72 6f 6c 0d 09 09 09 | 09 26 6f 70 74 69 6f 6e |trol....|.&option|
|00001360| 61 6c 20 6d 69 6e 63 6f | 6c 20 63 6f 6c 69 6e 63 |al minco|l colinc|
|00001370| 20 0d 09 09 09 09 09 09 | 6d 69 6e 70 61 64 20 70 | .......|minpad p|
|00001380| 61 64 63 68 61 72 29 0d | 09 09 28 73 65 74 71 20 |adchar).|..(setq |
|00001390| 61 72 67 73 20 28 6e 74 | 68 63 64 72 20 69 6e 64 |args (nt|hcdr ind|
|000013a0| 65 78 20 61 72 67 73 29 | 29 0d 09 09 28 69 66 20 |ex args)|)...(if |
|000013b0| 28 6e 75 6c 6c 20 61 72 | 67 73 29 20 0d 09 09 09 |(null ar|gs) ....|
|000013c0| 28 65 72 72 6f 72 20 22 | 4e 6f 74 20 65 6e 6f 75 |(error "|Not enou|
|000013d0| 67 68 20 61 72 67 73 20 | 66 6f 72 20 7e 41 53 20 |gh args |for ~AS |
|000013e0| 66 6f 72 6d 61 74 20 64 | 69 72 65 63 74 69 76 65 |format d|irective|
|000013f0| 22 20 23 5c 7e 29 29 0d | 0d 09 09 3b 3b 20 69 6e |" #\~)).|...;; in|
|00001400| 69 74 69 61 6c 69 7a 65 | 20 64 65 66 61 75 6c 74 |itialize| default|
|00001410| 73 0d 09 09 28 75 6e 6c | 65 73 73 20 6d 69 6e 63 |s...(unl|ess minc|
|00001420| 6f 6c 20 28 73 65 74 71 | 20 6d 69 6e 63 6f 6c 20 |ol (setq| mincol |
|00001430| 30 29 29 0d 09 09 28 75 | 6e 6c 65 73 73 20 63 6f |0))...(u|nless co|
|00001440| 6c 69 6e 63 20 28 73 65 | 74 71 20 63 6f 6c 69 6e |linc (se|tq colin|
|00001450| 63 20 31 29 29 0d 09 09 | 28 75 6e 6c 65 73 73 20 |c 1))...|(unless |
|00001460| 6d 69 6e 70 61 64 20 28 | 73 65 74 71 20 6d 69 6e |minpad (|setq min|
|00001470| 70 61 64 20 30 29 29 0d | 09 09 28 73 65 74 71 20 |pad 0)).|..(setq |
|00001480| 70 61 64 63 68 61 72 20 | 28 69 66 20 70 61 64 63 |padchar |(if padc|
|00001490| 68 61 72 20 28 69 6e 74 | 2d 63 68 61 72 20 70 61 |har (int|-char pa|
|000014a0| 64 63 68 61 72 29 20 23 | 5c 53 70 61 63 65 29 29 |dchar) #|\Space))|
|000014b0| 0d 0d 09 09 28 6c 65 74 | 20 28 28 2a 70 72 69 6e |....(let| ((*prin|
|000014c0| 74 2d 65 73 63 61 70 65 | 2a 20 74 29 0d 09 09 20 |t-escape|* t)... |
|000014d0| 20 09 20 20 28 61 72 67 | 20 28 63 61 72 20 61 72 | . (arg| (car ar|
|000014e0| 67 73 29 29 29 0d 09 09 | 09 28 69 66 20 28 61 6e |gs)))...|.(if (an|
|000014f0| 64 20 28 6e 75 6c 6c 20 | 61 72 67 29 20 63 6f 6c |d (null |arg) col|
|00001500| 6f 6e 2d 6d 6f 64 69 66 | 69 65 72 29 0d 09 09 09 |on-modif|ier)....|
|00001510| 09 28 73 65 74 71 20 61 | 72 67 20 22 28 29 22 29 |.(setq a|rg "()")|
|00001520| 29 0d 09 09 09 28 69 66 | 20 61 74 73 69 67 6e 2d |)....(if| atsign-|
|00001530| 6d 6f 64 69 66 69 65 72 | 0d 09 09 09 09 3b 3b 20 |modifier|.....;; |
|00001540| 6e 65 65 64 20 74 6f 20 | 6f 75 74 70 75 74 20 74 |need to |output t|
|00001550| 6f 20 73 74 72 69 6e 67 | 20 74 6f 20 69 6e 73 65 |o string| to inse|
|00001560| 72 74 20 70 61 64 64 69 | 6e 67 20 69 6e 20 66 72 |rt paddi|ng in fr|
|00001570| 6f 6e 74 0d 09 09 09 09 | 28 6c 65 74 20 28 28 73 |ont.....|(let ((s|
|00001580| 20 28 77 69 74 68 2d 6f | 75 74 70 75 74 2d 74 6f | (with-o|utput-to|
|00001590| 2d 73 74 72 69 6e 67 20 | 28 78 29 20 28 70 72 69 |-string |(x) (pri|
|000015a0| 6e 31 20 61 72 67 20 78 | 29 29 29 20 0d 09 09 09 |n1 arg x|))) ....|
|000015b0| 09 09 20 20 6c 65 6e 67 | 74 68 29 0d 09 09 09 09 |.. leng|th).....|
|000015c0| 09 28 64 6f 74 69 6d 65 | 73 20 28 69 20 6d 69 6e |.(dotime|s (i min|
|000015d0| 70 61 64 29 20 28 77 72 | 69 74 65 2d 63 68 61 72 |pad) (wr|ite-char|
|000015e0| 20 70 61 64 63 68 61 72 | 20 73 74 72 65 61 6d 29 | padchar| stream)|
|000015f0| 29 0d 09 09 09 09 09 28 | 73 65 74 71 20 6c 65 6e |)......(|setq len|
|00001600| 67 74 68 20 28 6c 65 6e | 67 74 68 20 73 29 29 0d |gth (len|gth s)).|
|00001610| 20 09 09 09 09 09 28 69 | 6e 63 66 20 6c 65 6e 67 | .....(i|ncf leng|
|00001620| 74 68 20 6d 69 6e 70 61 | 64 29 0d 09 09 09 09 09 |th minpa|d)......|
|00001630| 28 64 6f 20 28 29 0d 09 | 09 09 09 09 09 28 28 3e |(do ()..|.....((>|
|00001640| 3d 20 6c 65 6e 67 74 68 | 20 6d 69 6e 63 6f 6c 29 |= length| mincol)|
|00001650| 29 0d 09 09 09 09 09 09 | 28 64 6f 74 69 6d 65 73 |).......|(dotimes|
|00001660| 20 28 69 20 63 6f 6c 69 | 6e 63 29 20 28 77 72 69 | (i coli|nc) (wri|
|00001670| 74 65 2d 63 68 61 72 20 | 70 61 64 63 68 61 72 20 |te-char |padchar |
|00001680| 73 74 72 65 61 6d 29 29 | 0d 09 09 09 09 09 09 28 |stream))|.......(|
|00001690| 69 6e 63 66 20 6c 65 6e | 67 74 68 20 63 6f 6c 69 |incf len|gth coli|
|000016a0| 6e 63 29 29 0d 09 09 09 | 09 09 28 70 72 69 6e 63 |nc))....|..(princ|
|000016b0| 20 73 20 73 74 72 65 61 | 6d 29 29 0d 09 09 09 09 | s strea|m)).....|
|000016c0| 28 6c 65 74 20 28 6c 65 | 6e 67 74 68 20 28 73 74 |(let (le|ngth (st|
|000016d0| 61 72 74 2d 70 6f 73 20 | 28 73 74 72 65 61 6d 2d |art-pos |(stream-|
|000016e0| 63 6f 6c 75 6d 6e 20 73 | 74 72 65 61 6d 29 29 29 |column s|tream)))|
|000016f0| 0d 09 09 09 09 09 28 70 | 72 69 6e 31 20 61 72 67 |......(p|rin1 arg|
|00001700| 20 73 74 72 65 61 6d 29 | 0d 09 09 09 09 09 28 73 | stream)|......(s|
|00001710| 65 74 71 20 6c 65 6e 67 | 74 68 20 28 2d 20 28 73 |etq leng|th (- (s|
|00001720| 74 72 65 61 6d 2d 63 6f | 6c 75 6d 6e 20 73 74 72 |tream-co|lumn str|
|00001730| 65 61 6d 29 20 73 74 61 | 72 74 2d 70 6f 73 29 29 |eam) sta|rt-pos))|
|00001740| 0d 09 09 09 09 09 28 69 | 66 20 28 3c 20 6c 65 6e |......(i|f (< len|
|00001750| 67 74 68 20 30 29 20 28 | 73 65 74 71 20 6c 65 6e |gth 0) (|setq len|
|00001760| 67 74 68 20 30 29 29 0d | 09 09 09 09 09 28 64 6f |gth 0)).|.....(do|
|00001770| 74 69 6d 65 73 20 28 69 | 20 6d 69 6e 70 61 64 29 |times (i| minpad)|
|00001780| 20 28 77 72 69 74 65 2d | 63 68 61 72 20 70 61 64 | (write-|char pad|
|00001790| 63 68 61 72 20 73 74 72 | 65 61 6d 29 29 0d 20 09 |char str|eam)). .|
|000017a0| 09 09 09 09 28 69 6e 63 | 66 20 6c 65 6e 67 74 68 |....(inc|f length|
|000017b0| 20 6d 69 6e 70 61 64 29 | 0d 09 09 09 09 09 28 64 | minpad)|......(d|
|000017c0| 6f 20 28 29 0d 09 09 09 | 09 09 09 28 28 3e 3d 20 |o ()....|...((>= |
|000017d0| 6c 65 6e 67 74 68 20 6d | 69 6e 63 6f 6c 29 29 0d |length m|incol)).|
|000017e0| 09 09 09 09 09 09 28 64 | 6f 74 69 6d 65 73 20 28 |......(d|otimes (|
|000017f0| 69 20 63 6f 6c 69 6e 63 | 29 20 28 77 72 69 74 65 |i colinc|) (write|
|00001800| 2d 63 68 61 72 20 70 61 | 64 63 68 61 72 20 73 74 |-char pa|dchar st|
|00001810| 72 65 61 6d 29 29 0d 09 | 09 09 09 09 09 28 69 6e |ream))..|.....(in|
|00001820| 63 66 20 6c 65 6e 67 74 | 68 20 63 6f 6c 69 6e 63 |cf lengt|h colinc|
|00001830| 29 29 29 29 29 0d 09 09 | 09 28 31 2b 20 69 6e 64 |)))))...|.(1+ ind|
|00001840| 65 78 29 29 29 0d 0d 28 | 25 73 65 74 2d 66 6f 72 |ex)))..(|%set-for|
|00001850| 6d 61 74 2d 64 69 73 70 | 61 74 63 68 2d 66 75 6e |mat-disp|atch-fun|
|00001860| 63 20 23 5c 44 20 0d 09 | 23 27 28 6c 61 6d 62 64 |c #\D ..|#'(lambd|
|00001870| 61 20 28 73 74 72 65 61 | 6d 20 61 72 67 73 20 69 |a (strea|m args i|
|00001880| 6e 64 65 78 20 61 74 73 | 69 67 6e 2d 6d 6f 64 69 |ndex ats|ign-modi|
|00001890| 66 69 65 72 20 63 6f 6c | 6f 6e 2d 6d 6f 64 69 66 |fier col|on-modif|
|000018a0| 69 65 72 20 63 6f 6e 74 | 72 6f 6c 20 0d 09 09 09 |ier cont|rol ....|
|000018b0| 09 26 6f 70 74 69 6f 6e | 61 6c 20 6d 69 6e 63 6f |.&option|al minco|
|000018c0| 6c 20 70 61 64 63 68 61 | 72 20 63 6f 6d 6d 61 63 |l padcha|r commac|
|000018d0| 68 61 72 29 0d 09 09 28 | 73 65 74 71 20 61 72 67 |har)...(|setq arg|
|000018e0| 73 20 28 6e 74 68 63 64 | 72 20 69 6e 64 65 78 20 |s (nthcd|r index |
|000018f0| 61 72 67 73 29 29 0d 09 | 09 28 69 66 20 28 6e 75 |args))..|.(if (nu|
|00001900| 6c 6c 20 61 72 67 73 29 | 20 0d 09 09 09 28 65 72 |ll args)| ....(er|
|00001910| 72 6f 72 20 22 4e 6f 74 | 20 65 6e 6f 75 67 68 20 |ror "Not| enough |
|00001920| 61 72 67 73 20 66 6f 72 | 20 7e 7e 44 20 66 6f 72 |args for| ~~D for|
|00001930| 6d 61 74 20 64 69 72 65 | 63 74 69 76 65 22 29 29 |mat dire|ctive"))|
|00001940| 0d 0d 09 09 3b 3b 20 69 | 66 20 6e 6f 74 20 61 6e |....;; i|f not an|
|00001950| 20 69 6e 74 65 67 65 72 | 20 75 73 65 20 7e 41 20 | integer| use ~A |
|00001960| 6f 75 74 70 75 74 0d 09 | 09 28 69 66 20 28 6e 6f |output..|.(if (no|
|00001970| 74 20 28 69 6e 74 65 67 | 65 72 70 20 28 63 61 72 |t (integ|erp (car|
|00001980| 20 61 72 67 73 29 29 29 | 0d 09 09 09 28 6c 65 74 | args)))|....(let|
|00001990| 20 28 28 2a 70 72 69 6e | 74 2d 62 61 73 65 2a 20 | ((*prin|t-base* |
|000019a0| 31 30 29 29 0d 09 09 09 | 09 28 72 65 74 75 72 6e |10))....|.(return|
|000019b0| 20 28 61 70 70 6c 79 20 | 28 25 67 65 74 2d 66 6f | (apply |(%get-fo|
|000019c0| 72 6d 61 74 2d 64 69 73 | 70 61 74 63 68 2d 66 75 |rmat-dis|patch-fu|
|000019d0| 6e 63 20 23 5c 41 29 0d | 09 09 09 09 09 09 73 74 |nc #\A).|......st|
|000019e0| 72 65 61 6d 20 61 72 67 | 73 20 61 74 73 69 67 6e |ream arg|s atsign|
|000019f0| 2d 6d 6f 64 69 66 69 65 | 72 0d 09 09 09 09 09 09 |-modifie|r.......|
|00001a00| 63 6f 6c 6f 6e 2d 6d 6f | 64 69 66 69 65 72 20 6d |colon-mo|difier m|
|00001a10| 69 6e 63 6f 6c 20 6e 69 | 6c 20 6e 69 6c 20 70 61 |incol ni|l nil pa|
|00001a20| 64 63 68 61 72 29 29 29 | 29 0d 0d 09 09 28 25 66 |dchar)))|)....(%f|
|00001a30| 6f 72 6d 61 74 2d 69 6e | 74 65 67 65 72 20 73 74 |ormat-in|teger st|
|00001a40| 72 65 61 6d 20 28 63 61 | 72 20 61 72 67 73 29 20 |ream (ca|r args) |
|00001a50| 31 30 20 61 74 73 69 67 | 6e 2d 6d 6f 64 69 66 69 |10 atsig|n-modifi|
|00001a60| 65 72 20 63 6f 6c 6f 6e | 2d 6d 6f 64 69 66 69 65 |er colon|-modifie|
|00001a70| 72 0d 09 09 09 09 6d 69 | 6e 63 6f 6c 20 70 61 64 |r.....mi|ncol pad|
|00001a80| 63 68 61 72 20 63 6f 6d | 6d 61 63 68 61 72 29 0d |char com|machar).|
|00001a90| 09 09 28 31 2b 20 69 6e | 64 65 78 29 29 29 0d 0d |..(1+ in|dex)))..|
|00001aa0| 28 25 73 65 74 2d 66 6f | 72 6d 61 74 2d 64 69 73 |(%set-fo|rmat-dis|
|00001ab0| 70 61 74 63 68 2d 66 75 | 6e 63 20 23 5c 42 20 0d |patch-fu|nc #\B .|
|00001ac0| 09 23 27 28 6c 61 6d 62 | 64 61 20 28 73 74 72 65 |.#'(lamb|da (stre|
|00001ad0| 61 6d 20 61 72 67 73 20 | 69 6e 64 65 78 20 61 74 |am args |index at|
|00001ae0| 73 69 67 6e 2d 6d 6f 64 | 69 66 69 65 72 20 63 6f |sign-mod|ifier co|
|00001af0| 6c 6f 6e 2d 6d 6f 64 69 | 66 69 65 72 20 63 6f 6e |lon-modi|fier con|
|00001b00| 74 72 6f 6c 20 0d 09 09 | 09 09 26 6f 70 74 69 6f |trol ...|..&optio|
|00001b10| 6e 61 6c 20 6d 69 6e 63 | 6f 6c 20 70 61 64 63 68 |nal minc|ol padch|
|00001b20| 61 72 20 63 6f 6d 6d 61 | 63 68 61 72 29 0d 09 09 |ar comma|char)...|
|00001b30| 28 73 65 74 71 20 61 72 | 67 73 20 28 6e 74 68 63 |(setq ar|gs (nthc|
|00001b40| 64 72 20 69 6e 64 65 78 | 20 61 72 67 73 29 29 0d |dr index| args)).|
|00001b50| 09 09 28 69 66 20 28 6e | 75 6c 6c 20 61 72 67 73 |..(if (n|ull args|
|00001b60| 29 20 0d 09 09 09 28 65 | 72 72 6f 72 20 22 4e 6f |) ....(e|rror "No|
|00001b70| 74 20 65 6e 6f 75 67 68 | 20 61 72 67 73 20 66 6f |t enough| args fo|
|00001b80| 72 20 7e 41 42 20 66 6f | 72 6d 61 74 20 64 69 72 |r ~AB fo|rmat dir|
|00001b90| 65 63 74 69 76 65 22 20 | 23 5c 7e 29 29 0d 0d 09 |ective" |#\~))...|
|00001ba0| 09 3b 3b 20 69 66 20 6e | 6f 74 20 61 6e 20 69 6e |.;; if n|ot an in|
|00001bb0| 74 65 67 65 72 20 75 73 | 65 20 7e 41 20 6f 75 74 |teger us|e ~A out|
|00001bc0| 70 75 74 0d 09 09 28 69 | 66 20 28 6e 6f 74 20 28 |put...(i|f (not (|
|00001bd0| 69 6e 74 65 67 65 72 70 | 20 28 63 61 72 20 61 72 |integerp| (car ar|
|00001be0| 67 73 29 29 29 0d 09 09 | 09 28 6c 65 74 20 28 28 |gs)))...|.(let ((|
|00001bf0| 2a 70 72 69 6e 74 2d 62 | 61 73 65 2a 20 32 29 29 |*print-b|ase* 2))|
|00001c00| 0d 09 09 09 09 28 72 65 | 74 75 72 6e 20 28 61 70 |.....(re|turn (ap|
|00001c10| 70 6c 79 20 28 25 67 65 | 74 2d 66 6f 72 6d 61 74 |ply (%ge|t-format|
|00001c20| 2d 64 69 73 70 61 74 63 | 68 2d 66 75 6e 63 20 23 |-dispatc|h-func #|
|00001c30| 5c 41 29 0d 09 09 09 09 | 09 09 73 74 72 65 61 6d |\A).....|..stream|
|00001c40| 20 61 72 67 73 20 61 74 | 73 69 67 6e 2d 6d 6f 64 | args at|sign-mod|
|00001c50| 69 66 69 65 72 0d 09 09 | 09 09 09 09 63 6f 6c 6f |ifier...|....colo|
|00001c60| 6e 2d 6d 6f 64 69 66 69 | 65 72 20 6d 69 6e 63 6f |n-modifi|er minco|
|00001c70| 6c 20 6e 69 6c 20 6e 69 | 6c 20 70 61 64 63 68 61 |l nil ni|l padcha|
|00001c80| 72 29 29 29 29 0d 0d 09 | 09 28 25 66 6f 72 6d 61 |r))))...|.(%forma|
|00001c90| 74 2d 69 6e 74 65 67 65 | 72 20 73 74 72 65 61 6d |t-intege|r stream|
|00001ca0| 20 28 63 61 72 20 61 72 | 67 73 29 20 32 20 61 74 | (car ar|gs) 2 at|
|00001cb0| 73 69 67 6e 2d 6d 6f 64 | 69 66 69 65 72 20 63 6f |sign-mod|ifier co|
|00001cc0| 6c 6f 6e 2d 6d 6f 64 69 | 66 69 65 72 0d 09 09 09 |lon-modi|fier....|
|00001cd0| 09 6d 69 6e 63 6f 6c 20 | 70 61 64 63 68 61 72 20 |.mincol |padchar |
|00001ce0| 63 6f 6d 6d 61 63 68 61 | 72 29 0d 09 09 28 31 2b |commacha|r)...(1+|
|00001cf0| 20 69 6e 64 65 78 29 29 | 29 0d 0d 28 25 73 65 74 | index))|)..(%set|
|00001d00| 2d 66 6f 72 6d 61 74 2d | 64 69 73 70 61 74 63 68 |-format-|dispatch|
|00001d10| 2d 66 75 6e 63 20 23 5c | 4f 20 0d 09 23 27 28 6c |-func #\|O ..#'(l|
|00001d20| 61 6d 62 64 61 20 28 73 | 74 72 65 61 6d 20 61 72 |ambda (s|tream ar|
|00001d30| 67 73 20 69 6e 64 65 78 | 20 61 74 73 69 67 6e 2d |gs index| atsign-|
|00001d40| 6d 6f 64 69 66 69 65 72 | 20 63 6f 6c 6f 6e 2d 6d |modifier| colon-m|
|00001d50| 6f 64 69 66 69 65 72 20 | 63 6f 6e 74 72 6f 6c 20 |odifier |control |
|00001d60| 0d 09 09 09 09 26 6f 70 | 74 69 6f 6e 61 6c 20 6d |.....&op|tional m|
|00001d70| 69 6e 63 6f 6c 20 70 61 | 64 63 68 61 72 20 63 6f |incol pa|dchar co|
|00001d80| 6d 6d 61 63 68 61 72 29 | 0d 09 09 28 73 65 74 71 |mmachar)|...(setq|
|00001d90| 20 61 72 67 73 20 28 6e | 74 68 63 64 72 20 69 6e | args (n|thcdr in|
|00001da0| 64 65 78 20 61 72 67 73 | 29 29 0d 09 09 28 69 66 |dex args|))...(if|
|00001db0| 20 28 6e 75 6c 6c 20 61 | 72 67 73 29 20 0d 09 09 | (null a|rgs) ...|
|00001dc0| 09 28 65 72 72 6f 72 20 | 22 4e 6f 74 20 65 6e 6f |.(error |"Not eno|
|00001dd0| 75 67 68 20 61 72 67 73 | 20 66 6f 72 20 7e 41 4f |ugh args| for ~AO|
|00001de0| 20 66 6f 72 6d 61 74 20 | 64 69 72 65 63 74 69 76 | format |directiv|
|00001df0| 65 22 20 23 5c 7e 29 29 | 0d 0d 09 09 3b 3b 20 69 |e" #\~))|....;; i|
|00001e00| 66 20 6e 6f 74 20 61 6e | 20 69 6e 74 65 67 65 72 |f not an| integer|
|00001e10| 20 75 73 65 20 7e 41 20 | 6f 75 74 70 75 74 0d 09 | use ~A |output..|
|00001e20| 09 28 69 66 20 28 6e 6f | 74 20 28 69 6e 74 65 67 |.(if (no|t (integ|
|00001e30| 65 72 70 20 28 63 61 72 | 20 61 72 67 73 29 29 29 |erp (car| args)))|
|00001e40| 0d 09 09 09 28 6c 65 74 | 20 28 28 2a 70 72 69 6e |....(let| ((*prin|
|00001e50| 74 2d 62 61 73 65 2a 20 | 38 29 29 0d 09 09 09 09 |t-base* |8)).....|
|00001e60| 28 72 65 74 75 72 6e 20 | 28 61 70 70 6c 79 20 28 |(return |(apply (|
|00001e70| 25 67 65 74 2d 66 6f 72 | 6d 61 74 2d 64 69 73 70 |%get-for|mat-disp|
|00001e80| 61 74 63 68 2d 66 75 6e | 63 20 23 5c 41 29 0d 09 |atch-fun|c #\A)..|
|00001e90| 09 09 09 09 09 73 74 72 | 65 61 6d 20 61 72 67 73 |.....str|eam args|
|00001ea0| 20 61 74 73 69 67 6e 2d | 6d 6f 64 69 66 69 65 72 | atsign-|modifier|
|00001eb0| 0d 09 09 09 09 09 09 63 | 6f 6c 6f 6e 2d 6d 6f 64 |.......c|olon-mod|
|00001ec0| 69 66 69 65 72 20 6d 69 | 6e 63 6f 6c 20 6e 69 6c |ifier mi|ncol nil|
|00001ed0| 20 6e 69 6c 20 70 61 64 | 63 68 61 72 29 29 29 29 | nil pad|char))))|
|00001ee0| 0d 0d 09 09 28 25 66 6f | 72 6d 61 74 2d 69 6e 74 |....(%fo|rmat-int|
|00001ef0| 65 67 65 72 20 73 74 72 | 65 61 6d 20 28 63 61 72 |eger str|eam (car|
|00001f00| 20 61 72 67 73 29 20 38 | 20 61 74 73 69 67 6e 2d | args) 8| atsign-|
|00001f10| 6d 6f 64 69 66 69 65 72 | 20 63 6f 6c 6f 6e 2d 6d |modifier| colon-m|
|00001f20| 6f 64 69 66 69 65 72 0d | 09 09 09 09 6d 69 6e 63 |odifier.|....minc|
|00001f30| 6f 6c 20 70 61 64 63 68 | 61 72 20 63 6f 6d 6d 61 |ol padch|ar comma|
|00001f40| 63 68 61 72 29 0d 09 09 | 28 31 2b 20 69 6e 64 65 |char)...|(1+ inde|
|00001f50| 78 29 29 29 0d 0d 28 25 | 73 65 74 2d 66 6f 72 6d |x)))..(%|set-form|
|00001f60| 61 74 2d 64 69 73 70 61 | 74 63 68 2d 66 75 6e 63 |at-dispa|tch-func|
|00001f70| 20 23 5c 58 20 0d 09 23 | 27 28 6c 61 6d 62 64 61 | #\X ..#|'(lambda|
|00001f80| 20 28 73 74 72 65 61 6d | 20 61 72 67 73 20 69 6e | (stream| args in|
|00001f90| 64 65 78 20 61 74 73 69 | 67 6e 2d 6d 6f 64 69 66 |dex atsi|gn-modif|
|00001fa0| 69 65 72 20 63 6f 6c 6f | 6e 2d 6d 6f 64 69 66 69 |ier colo|n-modifi|
|00001fb0| 65 72 20 63 6f 6e 74 72 | 6f 6c 20 0d 09 09 09 09 |er contr|ol .....|
|00001fc0| 26 6f 70 74 69 6f 6e 61 | 6c 20 6d 69 6e 63 6f 6c |&optiona|l mincol|
|00001fd0| 20 70 61 64 63 68 61 72 | 20 63 6f 6d 6d 61 63 68 | padchar| commach|
|00001fe0| 61 72 29 0d 09 09 28 73 | 65 74 71 20 61 72 67 73 |ar)...(s|etq args|
|00001ff0| 20 28 6e 74 68 63 64 72 | 20 69 6e 64 65 78 20 61 | (nthcdr| index a|
|00002000| 72 67 73 29 29 0d 09 09 | 28 69 66 20 28 6e 75 6c |rgs))...|(if (nul|
|00002010| 6c 20 61 72 67 73 29 20 | 0d 09 09 09 28 65 72 72 |l args) |....(err|
|00002020| 6f 72 20 22 4e 6f 74 20 | 65 6e 6f 75 67 68 20 61 |or "Not |enough a|
|00002030| 72 67 73 20 66 6f 72 20 | 7e 41 58 20 66 6f 72 6d |rgs for |~AX form|
|00002040| 61 74 20 64 69 72 65 63 | 74 69 76 65 22 20 23 5c |at direc|tive" #\|
|00002050| 7e 29 29 0d 0d 09 09 3b | 3b 20 69 66 20 6e 6f 74 |~))....;|; if not|
|00002060| 20 61 6e 20 69 6e 74 65 | 67 65 72 20 75 73 65 20 | an inte|ger use |
|00002070| 7e 41 20 6f 75 74 70 75 | 74 0d 09 09 28 69 66 20 |~A outpu|t...(if |
|00002080| 28 6e 6f 74 20 28 69 6e | 74 65 67 65 72 70 20 28 |(not (in|tegerp (|
|00002090| 63 61 72 20 61 72 67 73 | 29 29 29 0d 09 09 09 28 |car args|)))....(|
|000020a0| 6c 65 74 20 28 28 2a 70 | 72 69 6e 74 2d 62 61 73 |let ((*p|rint-bas|
|000020b0| 65 2a 20 31 36 29 29 0d | 09 09 09 09 28 72 65 74 |e* 16)).|....(ret|
|000020c0| 75 72 6e 20 28 61 70 70 | 6c 79 20 28 25 67 65 74 |urn (app|ly (%get|
|000020d0| 2d 66 6f 72 6d 61 74 2d | 64 69 73 70 61 74 63 68 |-format-|dispatch|
|000020e0| 2d 66 75 6e 63 20 23 5c | 41 29 0d 09 09 09 09 09 |-func #\|A)......|
|000020f0| 09 73 74 72 65 61 6d 20 | 61 72 67 73 20 61 74 73 |.stream |args ats|
|00002100| 69 67 6e 2d 6d 6f 64 69 | 66 69 65 72 0d 09 09 09 |ign-modi|fier....|
|00002110| 09 09 09 63 6f 6c 6f 6e | 2d 6d 6f 64 69 66 69 65 |...colon|-modifie|
|00002120| 72 20 6d 69 6e 63 6f 6c | 20 6e 69 6c 20 6e 69 6c |r mincol| nil nil|
|00002130| 20 70 61 64 63 68 61 72 | 29 29 29 29 0d 0d 09 09 | padchar|))))....|
|00002140| 28 25 66 6f 72 6d 61 74 | 2d 69 6e 74 65 67 65 72 |(%format|-integer|
|00002150| 20 73 74 72 65 61 6d 20 | 28 63 61 72 20 61 72 67 | stream |(car arg|
|00002160| 73 29 20 31 36 20 61 74 | 73 69 67 6e 2d 6d 6f 64 |s) 16 at|sign-mod|
|00002170| 69 66 69 65 72 20 63 6f | 6c 6f 6e 2d 6d 6f 64 69 |ifier co|lon-modi|
|00002180| 66 69 65 72 0d 09 09 09 | 09 6d 69 6e 63 6f 6c 20 |fier....|.mincol |
|00002190| 70 61 64 63 68 61 72 20 | 63 6f 6d 6d 61 63 68 61 |padchar |commacha|
|000021a0| 72 29 0d 09 09 28 31 2b | 20 69 6e 64 65 78 29 29 |r)...(1+| index))|
|000021b0| 29 0d 0d 28 25 73 65 74 | 2d 66 6f 72 6d 61 74 2d |)..(%set|-format-|
|000021c0| 64 69 73 70 61 74 63 68 | 2d 66 75 6e 63 20 23 5c |dispatch|-func #\|
|000021d0| 52 20 0d 09 23 27 28 6c | 61 6d 62 64 61 20 28 73 |R ..#'(l|ambda (s|
|000021e0| 74 72 65 61 6d 20 61 72 | 67 73 20 69 6e 64 65 78 |tream ar|gs index|
|000021f0| 20 61 74 73 69 67 6e 2d | 6d 6f 64 69 66 69 65 72 | atsign-|modifier|
|00002200| 20 63 6f 6c 6f 6e 2d 6d | 6f 64 69 66 69 65 72 20 | colon-m|odifier |
|00002210| 63 6f 6e 74 72 6f 6c 20 | 0d 09 09 09 09 26 6f 70 |control |.....&op|
|00002220| 74 69 6f 6e 61 6c 20 72 | 61 64 69 78 20 6d 69 6e |tional r|adix min|
|00002230| 63 6f 6c 20 70 61 64 63 | 68 61 72 20 63 6f 6d 6d |col padc|har comm|
|00002240| 61 63 68 61 72 29 0d 09 | 09 28 73 65 74 71 20 61 |achar)..|.(setq a|
|00002250| 72 67 73 20 28 6e 74 68 | 63 64 72 20 69 6e 64 65 |rgs (nth|cdr inde|
|00002260| 78 20 61 72 67 73 29 29 | 0d 09 09 28 69 66 20 28 |x args))|...(if (|
|00002270| 6e 75 6c 6c 20 61 72 67 | 73 29 20 0d 09 09 09 28 |null arg|s) ....(|
|00002280| 65 72 72 6f 72 20 22 4e | 6f 74 20 65 6e 6f 75 67 |error "N|ot enoug|
|00002290| 68 20 61 72 67 73 20 66 | 6f 72 20 7e 41 52 20 66 |h args f|or ~AR f|
|000022a0| 6f 72 6d 61 74 20 64 69 | 72 65 63 74 69 76 65 22 |ormat di|rective"|
|000022b0| 20 23 5c 7e 29 29 0d 09 | 09 0d 09 09 28 69 66 20 | #\~))..|....(if |
|000022c0| 72 61 64 69 78 0d 09 09 | 09 3b 3b 20 69 66 20 6e |radix...|.;; if n|
|000022d0| 6f 74 20 61 6e 20 69 6e | 74 65 67 65 72 20 75 73 |ot an in|teger us|
|000022e0| 65 20 7e 41 20 6f 75 74 | 70 75 74 0d 09 09 09 28 |e ~A out|put....(|
|000022f0| 70 72 6f 67 6e 0d 09 09 | 09 09 28 69 66 20 28 6e |progn...|..(if (n|
|00002300| 6f 74 20 28 69 6e 74 65 | 67 65 72 70 20 28 63 61 |ot (inte|gerp (ca|
|00002310| 72 20 61 72 67 73 29 29 | 29 0d 09 09 09 09 09 28 |r args))|)......(|
|00002320| 6c 65 74 20 28 28 2a 70 | 72 69 6e 74 2d 62 61 73 |let ((*p|rint-bas|
|00002330| 65 2a 20 72 61 64 69 78 | 29 29 0d 09 09 09 09 09 |e* radix|))......|
|00002340| 09 28 72 65 74 75 72 6e | 20 28 61 70 70 6c 79 20 |.(return| (apply |
|00002350| 28 25 67 65 74 2d 66 6f | 72 6d 61 74 2d 64 69 73 |(%get-fo|rmat-dis|
|00002360| 70 61 74 63 68 2d 66 75 | 6e 63 20 23 5c 41 29 0d |patch-fu|nc #\A).|
|00002370| 09 09 09 09 09 09 09 09 | 09 61 72 67 73 20 61 74 |........|.args at|
|00002380| 73 69 67 6e 2d 6d 6f 64 | 69 66 69 65 72 0d 09 09 |sign-mod|ifier...|
|00002390| 09 09 09 09 09 09 09 63 | 6f 6c 6f 6e 2d 6d 6f 64 |.......c|olon-mod|
|000023a0| 69 66 69 65 72 20 6d 69 | 6e 63 6f 6c 20 6e 69 6c |ifier mi|ncol nil|
|000023b0| 20 6e 69 6c 20 70 61 64 | 63 68 61 72 29 29 29 29 | nil pad|char))))|
|000023c0| 0d 09 09 09 09 28 75 6e | 6c 65 73 73 20 28 61 6e |.....(un|less (an|
|000023d0| 64 20 28 70 6c 75 73 70 | 20 72 61 64 69 78 29 20 |d (plusp| radix) |
|000023e0| 28 3c 3d 20 72 61 64 69 | 78 20 33 36 29 29 0d 09 |(<= radi|x 36))..|
|000023f0| 09 09 09 09 28 65 72 72 | 6f 72 20 22 49 6e 76 61 |....(err|or "Inva|
|00002400| 6c 69 64 20 72 61 64 69 | 78 20 73 70 65 63 69 66 |lid radi|x specif|
|00002410| 69 65 64 3a 20 7e 41 22 | 20 72 61 64 69 78 29 29 |ied: ~A"| radix))|
|00002420| 0d 09 09 09 09 28 25 66 | 6f 72 6d 61 74 2d 69 6e |.....(%f|ormat-in|
|00002430| 74 65 67 65 72 20 73 74 | 72 65 61 6d 20 28 63 61 |teger st|ream (ca|
|00002440| 72 20 61 72 67 73 29 20 | 72 61 64 69 78 20 61 74 |r args) |radix at|
|00002450| 73 69 67 6e 2d 6d 6f 64 | 69 66 69 65 72 20 63 6f |sign-mod|ifier co|
|00002460| 6c 6f 6e 2d 6d 6f 64 69 | 66 69 65 72 0d 09 09 09 |lon-modi|fier....|
|00002470| 09 09 6d 69 6e 63 6f 6c | 20 70 61 64 63 68 61 72 |..mincol| padchar|
|00002480| 20 63 6f 6d 6d 61 63 68 | 61 72 29 29 0d 09 09 09 | commach|ar))....|
|00002490| 28 70 72 6f 67 6e 0d 09 | 09 09 09 28 69 66 20 28 |(progn..|...(if (|
|000024a0| 6e 6f 74 20 28 69 6e 74 | 65 67 65 72 70 20 28 63 |not (int|egerp (c|
|000024b0| 61 72 20 61 72 67 73 29 | 29 29 0d 09 09 09 09 09 |ar args)|))......|
|000024c0| 28 72 65 74 75 72 6e 20 | 28 61 70 70 6c 79 20 28 |(return |(apply (|
|000024d0| 25 67 65 74 2d 66 6f 72 | 6d 61 74 2d 64 69 73 70 |%get-for|mat-disp|
|000024e0| 61 74 63 68 2d 66 75 6e | 63 20 23 5c 41 29 0d 09 |atch-fun|c #\A)..|
|000024f0| 09 09 09 09 09 09 09 09 | 61 72 67 73 20 61 74 73 |........|args ats|
|00002500| 69 67 6e 2d 6d 6f 64 69 | 66 69 65 72 0d 09 09 09 |ign-modi|fier....|
|00002510| 09 09 09 09 09 09 63 6f | 6c 6f 6e 2d 6d 6f 64 69 |......co|lon-modi|
|00002520| 66 69 65 72 20 6d 69 6e | 63 6f 6c 20 6e 69 6c 20 |fier min|col nil |
|00002530| 6e 69 6c 20 70 61 64 63 | 68 61 72 29 29 29 0d 09 |nil padc|har)))..|
|00002540| 09 09 09 28 63 6f 6e 64 | 0d 09 09 09 09 09 28 28 |...(cond|......((|
|00002550| 61 6e 64 20 61 74 73 69 | 67 6e 2d 6d 6f 64 69 66 |and atsi|gn-modif|
|00002560| 69 65 72 20 63 6f 6c 6f | 6e 2d 6d 6f 64 69 66 69 |ier colo|n-modifi|
|00002570| 65 72 29 20 0d 09 09 09 | 09 20 09 20 28 25 66 6f |er) ....|. . (%fo|
|00002580| 72 6d 61 74 2d 6f 6c 64 | 2d 72 6f 6d 61 6e 2d 6e |rmat-old|-roman-n|
|00002590| 75 6d 65 72 61 6c 20 28 | 63 61 72 20 61 72 67 73 |umeral (|car args|
|000025a0| 29 20 73 74 72 65 61 6d | 29 29 0d 09 09 09 09 09 |) stream|))......|
|000025b0| 28 61 74 73 69 67 6e 2d | 6d 6f 64 69 66 69 65 72 |(atsign-|modifier|
|000025c0| 20 28 25 66 6f 72 6d 61 | 74 2d 72 6f 6d 61 6e 2d | (%forma|t-roman-|
|000025d0| 6e 75 6d 65 72 61 6c 20 | 28 63 61 72 20 61 72 67 |numeral |(car arg|
|000025e0| 73 29 20 73 74 72 65 61 | 6d 29 29 0d 09 09 09 09 |s) strea|m)).....|
|000025f0| 09 28 63 6f 6c 6f 6e 2d | 6d 6f 64 69 66 69 65 72 |.(colon-|modifier|
|00002600| 20 28 25 66 6f 72 6d 61 | 74 2d 6f 72 64 69 6e 61 | (%forma|t-ordina|
|00002610| 6c 2d 6e 75 6d 62 65 72 | 20 28 63 61 72 20 61 72 |l-number| (car ar|
|00002620| 67 73 29 20 73 74 72 65 | 61 6d 29 29 0d 09 09 09 |gs) stre|am))....|
|00002630| 09 09 28 74 20 28 25 66 | 6f 72 6d 61 74 2d 63 61 |..(t (%f|ormat-ca|
|00002640| 72 64 69 6e 61 6c 2d 6e | 75 6d 62 65 72 20 28 63 |rdinal-n|umber (c|
|00002650| 61 72 20 61 72 67 73 29 | 20 73 74 72 65 61 6d 29 |ar args)| stream)|
|00002660| 29 29 29 29 0d 09 09 28 | 31 2b 20 69 6e 64 65 78 |))))...(|1+ index|
|00002670| 29 29 29 0d 0d 28 25 73 | 65 74 2d 66 6f 72 6d 61 |)))..(%s|et-forma|
|00002680| 74 2d 64 69 73 70 61 74 | 63 68 2d 66 75 6e 63 20 |t-dispat|ch-func |
|00002690| 23 5c 7e 20 0d 09 23 27 | 28 6c 61 6d 62 64 61 20 |#\~ ..#'|(lambda |
|000026a0| 28 73 74 72 65 61 6d 20 | 61 72 67 73 20 69 6e 64 |(stream |args ind|
|000026b0| 65 78 20 61 74 73 69 67 | 6e 2d 6d 6f 64 69 66 69 |ex atsig|n-modifi|
|000026c0| 65 72 20 63 6f 6c 6f 6e | 2d 6d 6f 64 69 66 69 65 |er colon|-modifie|
|000026d0| 72 20 63 6f 6e 74 72 6f | 6c 20 0d 09 09 09 09 26 |r contro|l .....&|
|000026e0| 6f 70 74 69 6f 6e 61 6c | 20 6e 75 6d 29 0d 09 09 |optional| num)...|
|000026f0| 28 75 6e 6c 65 73 73 20 | 6e 75 6d 20 28 73 65 74 |(unless |num (set|
|00002700| 71 20 6e 75 6d 20 31 29 | 29 0d 09 09 28 64 6f 74 |q num 1)|)...(dot|
|00002710| 69 6d 65 73 20 28 69 20 | 6e 75 6d 29 0d 09 09 09 |imes (i |num)....|
|00002720| 28 77 72 69 74 65 2d 63 | 68 61 72 20 23 5c 7e 20 |(write-c|har #\~ |
|00002730| 73 74 72 65 61 6d 29 29 | 0d 09 09 69 6e 64 65 78 |stream))|...index|
|00002740| 29 29 0d 0d 28 25 73 65 | 74 2d 66 6f 72 6d 61 74 |))..(%se|t-format|
|00002750| 2d 64 69 73 70 61 74 63 | 68 2d 66 75 6e 63 20 23 |-dispatc|h-func #|
|00002760| 5c 25 20 0d 09 23 27 28 | 6c 61 6d 62 64 61 20 28 |\% ..#'(|lambda (|
|00002770| 73 74 72 65 61 6d 20 61 | 72 67 73 20 69 6e 64 65 |stream a|rgs inde|
|00002780| 78 20 61 74 73 69 67 6e | 2d 6d 6f 64 69 66 69 65 |x atsign|-modifie|
|00002790| 72 20 63 6f 6c 6f 6e 2d | 6d 6f 64 69 66 69 65 72 |r colon-|modifier|
|000027a0| 20 63 6f 6e 74 72 6f 6c | 20 0d 09 09 09 09 26 6f | control| .....&o|
|000027b0| 70 74 69 6f 6e 61 6c 20 | 6e 75 6d 29 0d 09 09 28 |ptional |num)...(|
|000027c0| 75 6e 6c 65 73 73 20 6e | 75 6d 20 28 73 65 74 71 |unless n|um (setq|
|000027d0| 20 6e 75 6d 20 31 29 29 | 0d 09 09 28 64 6f 74 69 | num 1))|...(doti|
|000027e0| 6d 65 73 20 28 69 20 6e | 75 6d 29 0d 09 09 09 28 |mes (i n|um)....(|
|000027f0| 77 72 69 74 65 2d 63 68 | 61 72 20 23 5c 4e 65 77 |write-ch|ar #\New|
|00002800| 6c 69 6e 65 20 73 74 72 | 65 61 6d 29 29 0d 09 09 |line str|eam))...|
|00002810| 69 6e 64 65 78 29 29 0d | 0d 28 25 73 65 74 2d 66 |index)).|.(%set-f|
|00002820| 6f 72 6d 61 74 2d 64 69 | 73 70 61 74 63 68 2d 66 |ormat-di|spatch-f|
|00002830| 75 6e 63 20 23 5c 46 20 | 0d 09 23 27 28 6c 61 6d |unc #\F |..#'(lam|
|00002840| 62 64 61 20 28 73 74 72 | 65 61 6d 20 61 72 67 73 |bda (str|eam args|
|00002850| 20 69 6e 64 65 78 20 61 | 74 73 69 67 6e 2d 6d 6f | index a|tsign-mo|
|00002860| 64 69 66 69 65 72 20 63 | 6f 6c 6f 6e 2d 6d 6f 64 |difier c|olon-mod|
|00002870| 69 66 69 65 72 20 63 6f | 6e 74 72 6f 6c 20 0d 09 |ifier co|ntrol ..|
|00002880| 09 09 09 26 6f 70 74 69 | 6f 6e 61 6c 20 77 69 64 |...&opti|onal wid|
|00002890| 74 68 20 64 69 67 69 74 | 73 20 73 63 61 6c 65 20 |th digit|s scale |
|000028a0| 6f 76 65 72 66 6c 6f 77 | 2d 63 68 61 72 20 70 61 |overflow|-char pa|
|000028b0| 64 63 68 61 72 29 0d 09 | 09 28 73 65 74 71 20 61 |dchar)..|.(setq a|
|000028c0| 72 67 73 20 28 6e 74 68 | 63 64 72 20 69 6e 64 65 |rgs (nth|cdr inde|
|000028d0| 78 20 61 72 67 73 29 29 | 0d 09 09 28 69 66 20 28 |x args))|...(if (|
|000028e0| 6e 75 6c 6c 20 61 72 67 | 73 29 20 0d 09 09 09 28 |null arg|s) ....(|
|000028f0| 65 72 72 6f 72 20 22 4e | 6f 74 20 65 6e 6f 75 67 |error "N|ot enoug|
|00002900| 68 20 61 72 67 73 20 66 | 6f 72 20 7e 7e 46 20 66 |h args f|or ~~F f|
|00002910| 6f 72 6d 61 74 20 64 69 | 72 65 63 74 69 76 65 22 |ormat di|rective"|
|00002920| 29 29 0d 0d 09 09 3b 3b | 20 69 6e 69 74 69 61 6c |))....;;| initial|
|00002930| 69 7a 65 20 64 65 66 61 | 75 6c 74 73 0d 09 09 28 |ize defa|ults...(|
|00002940| 75 6e 6c 65 73 73 20 77 | 69 64 74 68 20 28 73 65 |unless w|idth (se|
|00002950| 74 71 20 77 69 64 74 68 | 20 2d 31 29 29 0d 09 09 |tq width| -1))...|
|00002960| 28 75 6e 6c 65 73 73 20 | 64 69 67 69 74 73 20 28 |(unless |digits (|
|00002970| 73 65 74 71 20 64 69 67 | 69 74 73 20 31 29 29 0d |setq dig|its 1)).|
|00002980| 09 09 28 75 6e 6c 65 73 | 73 20 73 63 61 6c 65 20 |..(unles|s scale |
|00002990| 28 73 65 74 71 20 73 63 | 61 6c 65 20 30 29 29 0d |(setq sc|ale 0)).|
|000029a0| 09 09 28 73 65 74 71 20 | 6f 76 65 72 66 6c 6f 77 |..(setq |overflow|
|000029b0| 2d 63 68 61 72 20 28 69 | 66 20 6f 76 65 72 66 6c |-char (i|f overfl|
|000029c0| 6f 77 2d 63 68 61 72 20 | 28 69 6e 74 2d 63 68 61 |ow-char |(int-cha|
|000029d0| 72 20 6f 76 65 72 66 6c | 6f 77 2d 63 68 61 72 29 |r overfl|ow-char)|
|000029e0| 20 23 5c 53 70 61 63 65 | 29 29 0d 09 09 28 73 65 | #\Space|))...(se|
|000029f0| 74 71 20 70 61 64 63 68 | 61 72 20 28 69 66 20 70 |tq padch|ar (if p|
|00002a00| 61 64 63 68 61 72 20 28 | 69 6e 74 2d 63 68 61 72 |adchar (|int-char|
|00002a10| 20 70 61 64 63 68 61 72 | 29 20 23 5c 53 70 61 63 | padchar|) #\Spac|
|00002a20| 65 29 29 0d 0d 09 09 28 | 70 72 69 6e 74 2d 66 6c |e))....(|print-fl|
|00002a30| 6f 61 74 20 28 63 61 72 | 20 61 72 67 73 29 20 73 |oat (car| args) s|
|00002a40| 74 72 65 61 6d 20 3a 66 | 69 78 65 64 20 77 69 64 |tream :f|ixed wid|
|00002a50| 74 68 20 64 69 67 69 74 | 73 0d 09 09 09 09 73 63 |th digit|s.....sc|
|00002a60| 61 6c 65 20 70 61 64 63 | 68 61 72 20 61 74 73 69 |ale padc|har atsi|
|00002a70| 67 6e 2d 6d 6f 64 69 66 | 69 65 72 29 0d 09 09 28 |gn-modif|ier)...(|
|00002a80| 31 2b 20 69 6e 64 65 78 | 29 29 29 0d 0d 28 25 73 |1+ index|)))..(%s|
|00002a90| 65 74 2d 66 6f 72 6d 61 | 74 2d 64 69 73 70 61 74 |et-forma|t-dispat|
|00002aa0| 63 68 2d 66 75 6e 63 20 | 23 5c 47 20 0d 09 23 27 |ch-func |#\G ..#'|
|00002ab0| 28 6c 61 6d 62 64 61 20 | 28 73 74 72 65 61 6d 20 |(lambda |(stream |
|00002ac0| 61 72 67 73 20 69 6e 64 | 65 78 20 61 74 73 69 67 |args ind|ex atsig|
|00002ad0| 6e 2d 6d 6f 64 69 66 69 | 65 72 20 63 6f 6c 6f 6e |n-modifi|er colon|
|00002ae0| 2d 6d 6f 64 69 66 69 65 | 72 20 63 6f 6e 74 72 6f |-modifie|r contro|
|00002af0| 6c 20 0d 09 09 09 09 26 | 6f 70 74 69 6f 6e 61 6c |l .....&|optional|
|00002b00| 20 77 69 64 74 68 20 64 | 69 67 69 74 73 20 65 78 | width d|igits ex|
|00002b10| 70 2d 64 69 67 69 74 73 | 20 73 63 61 6c 65 20 6f |p-digits| scale o|
|00002b20| 76 65 72 66 6c 6f 77 2d | 63 68 61 72 20 70 61 64 |verflow-|char pad|
|00002b30| 63 68 61 72 0d 09 09 09 | 09 09 65 78 70 6f 6e 65 |char....|..expone|
|00002b40| 6e 74 2d 63 68 61 72 29 | 0d 09 09 28 73 65 74 71 |nt-char)|...(setq|
|00002b50| 20 61 72 67 73 20 28 6e | 74 68 63 64 72 20 69 6e | args (n|thcdr in|
|00002b60| 64 65 78 20 61 72 67 73 | 29 29 0d 09 09 28 69 66 |dex args|))...(if|
|00002b70| 20 28 6e 75 6c 6c 20 61 | 72 67 73 29 20 0d 09 09 | (null a|rgs) ...|
|00002b80| 09 28 65 72 72 6f 72 20 | 22 4e 6f 74 20 65 6e 6f |.(error |"Not eno|
|00002b90| 75 67 68 20 61 72 67 73 | 20 66 6f 72 20 7e 7e 47 |ugh args| for ~~G|
|00002ba0| 20 66 6f 72 6d 61 74 20 | 64 69 72 65 63 74 69 76 | format |directiv|
|00002bb0| 65 22 29 29 0d 0d 09 09 | 3b 3b 20 69 6e 69 74 69 |e"))....|;; initi|
|00002bc0| 61 6c 69 7a 65 20 64 65 | 66 61 75 6c 74 73 0d 09 |alize de|faults..|
|00002bd0| 09 28 75 6e 6c 65 73 73 | 20 77 69 64 74 68 20 28 |.(unless| width (|
|00002be0| 73 65 74 71 20 77 69 64 | 74 68 20 2d 31 29 29 0d |setq wid|th -1)).|
|00002bf0| 09 09 28 75 6e 6c 65 73 | 73 20 64 69 67 69 74 73 |..(unles|s digits|
|00002c00| 20 28 73 65 74 71 20 64 | 69 67 69 74 73 20 31 29 | (setq d|igits 1)|
|00002c10| 29 0d 09 09 28 75 6e 6c | 65 73 73 20 65 78 70 2d |)...(unl|ess exp-|
|00002c20| 64 69 67 69 74 73 20 28 | 73 65 74 71 20 65 78 70 |digits (|setq exp|
|00002c30| 2d 64 69 67 69 74 73 20 | 32 29 29 0d 09 09 28 75 |-digits |2))...(u|
|00002c40| 6e 6c 65 73 73 20 73 63 | 61 6c 65 20 28 73 65 74 |nless sc|ale (set|
|00002c50| 71 20 73 63 61 6c 65 20 | 30 29 29 0d 09 09 28 73 |q scale |0))...(s|
|00002c60| 65 74 71 20 6f 76 65 72 | 66 6c 6f 77 2d 63 68 61 |etq over|flow-cha|
|00002c70| 72 20 28 69 66 20 6f 76 | 65 72 66 6c 6f 77 2d 63 |r (if ov|erflow-c|
|00002c80| 68 61 72 20 28 69 6e 74 | 2d 63 68 61 72 20 6f 76 |har (int|-char ov|
|00002c90| 65 72 66 6c 6f 77 2d 63 | 68 61 72 29 20 23 5c 53 |erflow-c|har) #\S|
|00002ca0| 70 61 63 65 29 29 0d 09 | 09 28 73 65 74 71 20 70 |pace))..|.(setq p|
|00002cb0| 61 64 63 68 61 72 20 28 | 69 66 20 70 61 64 63 68 |adchar (|if padch|
|00002cc0| 61 72 20 28 69 6e 74 2d | 63 68 61 72 20 70 61 64 |ar (int-|char pad|
|00002cd0| 63 68 61 72 29 20 23 5c | 53 70 61 63 65 29 29 0d |char) #\|Space)).|
|00002ce0| 09 09 28 73 65 74 71 20 | 65 78 70 6f 6e 65 6e 74 |..(setq |exponent|
|00002cf0| 2d 63 68 61 72 20 28 69 | 66 20 65 78 70 6f 6e 65 |-char (i|f expone|
|00002d00| 6e 74 2d 63 68 61 72 20 | 28 69 6e 74 2d 63 68 61 |nt-char |(int-cha|
|00002d10| 72 20 65 78 70 6f 6e 65 | 6e 74 2d 63 68 61 72 29 |r expone|nt-char)|
|00002d20| 20 23 5c 45 29 29 0d 0d | 09 09 28 70 72 69 6e 74 | #\E))..|..(print|
|00002d30| 2d 66 6c 6f 61 74 20 28 | 63 61 72 20 61 72 67 73 |-float (|car args|
|00002d40| 29 20 73 74 72 65 61 6d | 20 3a 67 65 6e 65 72 61 |) stream| :genera|
|00002d50| 6c 20 77 69 64 74 68 20 | 64 69 67 69 74 73 0d 09 |l width |digits..|
|00002d60| 09 09 09 73 63 61 6c 65 | 20 70 61 64 63 68 61 72 |...scale| padchar|
|00002d70| 20 61 74 73 69 67 6e 2d | 6d 6f 64 69 66 69 65 72 | atsign-|modifier|
|00002d80| 29 0d 09 09 28 31 2b 20 | 69 6e 64 65 78 29 29 29 |)...(1+ |index)))|
|00002d90| 0d 0d 28 25 73 65 74 2d | 66 6f 72 6d 61 74 2d 64 |..(%set-|format-d|
|00002da0| 69 73 70 61 74 63 68 2d | 66 75 6e 63 20 23 5c 45 |ispatch-|func #\E|
|00002db0| 20 0d 09 23 27 28 6c 61 | 6d 62 64 61 20 28 73 74 | ..#'(la|mbda (st|
|00002dc0| 72 65 61 6d 20 61 72 67 | 73 20 69 6e 64 65 78 20 |ream arg|s index |
|00002dd0| 61 74 73 69 67 6e 2d 6d | 6f 64 69 66 69 65 72 20 |atsign-m|odifier |
|00002de0| 63 6f 6c 6f 6e 2d 6d 6f | 64 69 66 69 65 72 20 63 |colon-mo|difier c|
|00002df0| 6f 6e 74 72 6f 6c 20 0d | 09 09 09 09 26 6f 70 74 |ontrol .|....&opt|
|00002e00| 69 6f 6e 61 6c 20 77 69 | 64 74 68 20 64 69 67 69 |ional wi|dth digi|
|00002e10| 74 73 20 65 78 70 2d 64 | 69 67 69 74 73 20 73 63 |ts exp-d|igits sc|
|00002e20| 61 6c 65 20 6f 76 65 72 | 66 6c 6f 77 2d 63 68 61 |ale over|flow-cha|
|00002e30| 72 20 70 61 64 63 68 61 | 72 0d 09 09 09 09 09 65 |r padcha|r......e|
|00002e40| 78 70 6f 6e 65 6e 74 2d | 63 68 61 72 29 0d 09 09 |xponent-|char)...|
|00002e50| 28 73 65 74 71 20 61 72 | 67 73 20 28 6e 74 68 63 |(setq ar|gs (nthc|
|00002e60| 64 72 20 69 6e 64 65 78 | 20 61 72 67 73 29 29 0d |dr index| args)).|
|00002e70| 09 09 28 69 66 20 28 6e | 75 6c 6c 20 61 72 67 73 |..(if (n|ull args|
|00002e80| 29 20 0d 09 09 09 28 65 | 72 72 6f 72 20 22 4e 6f |) ....(e|rror "No|
|00002e90| 74 20 65 6e 6f 75 67 68 | 20 61 72 67 73 20 66 6f |t enough| args fo|
|00002ea0| 72 20 7e 7e 45 20 66 6f | 72 6d 61 74 20 64 69 72 |r ~~E fo|rmat dir|
|00002eb0| 65 63 74 69 76 65 22 29 | 29 0d 0d 09 09 3b 3b 20 |ective")|)....;; |
|00002ec0| 69 6e 69 74 69 61 6c 69 | 7a 65 20 64 65 66 61 75 |initiali|ze defau|
|00002ed0| 6c 74 73 0d 09 09 28 75 | 6e 6c 65 73 73 20 77 69 |lts...(u|nless wi|
|00002ee0| 64 74 68 20 28 73 65 74 | 71 20 77 69 64 74 68 20 |dth (set|q width |
|00002ef0| 2d 31 29 29 0d 09 09 28 | 75 6e 6c 65 73 73 20 64 |-1))...(|unless d|
|00002f00| 69 67 69 74 73 20 28 73 | 65 74 71 20 64 69 67 69 |igits (s|etq digi|
|00002f10| 74 73 20 31 29 29 0d 09 | 09 28 75 6e 6c 65 73 73 |ts 1))..|.(unless|
|00002f20| 20 65 78 70 2d 64 69 67 | 69 74 73 20 28 73 65 74 | exp-dig|its (set|
|00002f30| 71 20 65 78 70 2d 64 69 | 67 69 74 73 20 32 29 29 |q exp-di|gits 2))|
|00002f40| 0d 09 09 28 75 6e 6c 65 | 73 73 20 73 63 61 6c 65 |...(unle|ss scale|
|00002f50| 20 28 73 65 74 71 20 73 | 63 61 6c 65 20 30 29 29 | (setq s|cale 0))|
|00002f60| 0d 09 09 28 73 65 74 71 | 20 6f 76 65 72 66 6c 6f |...(setq| overflo|
|00002f70| 77 2d 63 68 61 72 20 28 | 69 66 20 6f 76 65 72 66 |w-char (|if overf|
|00002f80| 6c 6f 77 2d 63 68 61 72 | 20 28 69 6e 74 2d 63 68 |low-char| (int-ch|
|00002f90| 61 72 20 6f 76 65 72 66 | 6c 6f 77 2d 63 68 61 72 |ar overf|low-char|
|00002fa0| 29 20 23 5c 53 70 61 63 | 65 29 29 0d 09 09 28 73 |) #\Spac|e))...(s|
|00002fb0| 65 74 71 20 70 61 64 63 | 68 61 72 20 28 69 66 20 |etq padc|har (if |
|00002fc0| 70 61 64 63 68 61 72 20 | 28 69 6e 74 2d 63 68 61 |padchar |(int-cha|
|00002fd0| 72 20 70 61 64 63 68 61 | 72 29 20 23 5c 53 70 61 |r padcha|r) #\Spa|
|00002fe0| 63 65 29 29 0d 09 09 28 | 73 65 74 71 20 65 78 70 |ce))...(|setq exp|
|00002ff0| 6f 6e 65 6e 74 2d 63 68 | 61 72 20 28 69 66 20 65 |onent-ch|ar (if e|
|00003000| 78 70 6f 6e 65 6e 74 2d | 63 68 61 72 20 28 69 6e |xponent-|char (in|
|00003010| 74 2d 63 68 61 72 20 65 | 78 70 6f 6e 65 6e 74 2d |t-char e|xponent-|
|00003020| 63 68 61 72 29 20 23 5c | 45 29 29 0d 0d 09 09 28 |char) #\|E))....(|
|00003030| 70 72 69 6e 74 2d 66 6c | 6f 61 74 20 28 63 61 72 |print-fl|oat (car|
|00003040| 20 61 72 67 73 29 20 73 | 74 72 65 61 6d 20 3a 65 | args) s|tream :e|
|00003050| 78 70 6f 6e 65 6e 74 69 | 61 6c 20 77 69 64 74 68 |xponenti|al width|
|00003060| 20 64 69 67 69 74 73 0d | 09 09 09 09 73 63 61 6c | digits.|....scal|
|00003070| 65 20 70 61 64 63 68 61 | 72 20 61 74 73 69 67 6e |e padcha|r atsign|
|00003080| 2d 6d 6f 64 69 66 69 65 | 72 29 0d 09 09 28 31 2b |-modifie|r)...(1+|
|00003090| 20 69 6e 64 65 78 29 29 | 29 0d 0d 28 25 73 65 74 | index))|)..(%set|
|000030a0| 2d 66 6f 72 6d 61 74 2d | 64 69 73 70 61 74 63 68 |-format-|dispatch|
|000030b0| 2d 66 75 6e 63 20 23 5c | 7b 20 0d 09 23 27 28 6c |-func #\|{ ..#'(l|
|000030c0| 61 6d 62 64 61 20 28 73 | 74 72 65 61 6d 20 61 72 |ambda (s|tream ar|
|000030d0| 67 73 20 69 6e 64 65 78 | 20 61 74 73 69 67 6e 2d |gs index| atsign-|
|000030e0| 6d 6f 64 69 66 69 65 72 | 20 63 6f 6c 6f 6e 2d 6d |modifier| colon-m|
|000030f0| 6f 64 69 66 69 65 72 20 | 63 6f 6e 74 72 6f 6c 29 |odifier |control)|
|00003100| 0d 09 09 28 73 65 74 71 | 20 61 72 67 73 20 28 6e |...(setq| args (n|
|00003110| 74 68 63 64 72 20 69 6e | 64 65 78 20 61 72 67 73 |thcdr in|dex args|
|00003120| 29 29 0d 09 09 28 75 6e | 6c 65 73 73 20 61 72 67 |))...(un|less arg|
|00003130| 73 20 0d 09 09 09 28 65 | 72 72 6f 72 20 22 4e 6f |s ....(e|rror "No|
|00003140| 74 20 65 6e 6f 75 67 68 | 20 61 72 67 73 20 66 6f |t enough| args fo|
|00003150| 72 20 7e 7e 7b 20 66 6f | 72 6d 61 74 20 64 69 72 |r ~~{ fo|rmat dir|
|00003160| 65 63 74 69 76 65 22 29 | 29 0d 09 09 28 75 6e 6c |ective")|)...(unl|
|00003170| 65 73 73 20 28 6f 72 20 | 28 6c 69 73 74 70 20 28 |ess (or |(listp (|
|00003180| 63 61 72 20 61 72 67 73 | 29 29 20 61 74 73 69 67 |car args|)) atsig|
|00003190| 6e 2d 6d 6f 64 69 66 69 | 65 72 29 0d 09 09 09 28 |n-modifi|er)....(|
|000031a0| 65 72 72 6f 72 20 22 49 | 6e 76 61 6c 69 64 20 66 |error "I|nvalid f|
|000031b0| 6f 72 6d 61 74 20 61 72 | 67 75 6d 65 6e 74 2d 2d |ormat ar|gument--|
|000031c0| 73 68 6f 75 6c 64 20 62 | 65 20 61 20 6c 69 73 74 |should b|e a list|
|000031d0| 22 29 29 0d 0d 09 09 28 | 6c 65 74 20 28 28 65 6e |"))....(|let ((en|
|000031e0| 64 2d 62 72 61 63 65 2d | 69 6e 64 65 78 20 28 73 |d-brace-|index (s|
|000031f0| 65 61 72 63 68 20 22 7e | 7d 22 20 28 63 61 72 20 |earch "~|}" (car |
|00003200| 63 6f 6e 74 72 6f 6c 29 | 20 3a 73 74 61 72 74 32 |control)| :start2|
|00003210| 20 28 63 61 64 72 20 63 | 6f 6e 74 72 6f 6c 29 29 | (cadr c|ontrol))|
|00003220| 29 0d 09 09 09 20 20 73 | 74 72 69 6e 67 29 0d 09 |).... s|tring)..|
|00003230| 09 09 28 69 66 20 65 6e | 64 2d 62 72 61 63 65 2d |..(if en|d-brace-|
|00003240| 69 6e 64 65 78 0d 09 09 | 09 09 28 73 65 74 71 20 |index...|..(setq |
|00003250| 73 74 72 69 6e 67 20 28 | 73 75 62 73 65 71 20 28 |string (|subseq (|
|00003260| 63 61 72 20 63 6f 6e 74 | 72 6f 6c 29 20 28 63 61 |car cont|rol) (ca|
|00003270| 64 72 20 63 6f 6e 74 72 | 6f 6c 29 20 65 6e 64 2d |dr contr|ol) end-|
|00003280| 62 72 61 63 65 2d 69 6e | 64 65 78 29 29 0d 09 09 |brace-in|dex))...|
|00003290| 09 09 28 65 72 72 6f 72 | 20 22 4d 69 73 73 69 6e |..(error| "Missin|
|000032a0| 67 20 7e 7e 7d 20 66 6f | 6c 6c 6f 77 69 6e 67 20 |g ~~} fo|llowing |
|000032b0| 7e 7b 20 69 6e 20 66 6f | 72 6d 61 74 20 73 74 72 |~{ in fo|rmat str|
|000032c0| 69 6e 67 22 29 29 0d 09 | 09 09 28 73 65 74 66 20 |ing"))..|..(setf |
|000032d0| 28 63 61 64 72 20 63 6f | 6e 74 72 6f 6c 29 20 28 |(cadr co|ntrol) (|
|000032e0| 2b 20 32 20 65 6e 64 2d | 62 72 61 63 65 2d 69 6e |+ 2 end-|brace-in|
|000032f0| 64 65 78 29 29 0d 09 09 | 09 28 63 6f 6e 64 20 0d |dex))...|.(cond .|
|00003300| 09 09 09 09 28 28 61 6e | 64 20 63 6f 6c 6f 6e 2d |....((an|d colon-|
|00003310| 6d 6f 64 69 66 69 65 72 | 20 61 74 73 69 67 6e 2d |modifier| atsign-|
|00003320| 6d 6f 64 69 66 69 65 72 | 29 0d 09 09 09 09 09 28 |modifier|)......(|
|00003330| 72 65 74 75 72 6e 20 0d | 09 09 09 09 09 09 28 64 |return .|......(d|
|00003340| 6f 20 28 28 61 72 67 2d | 69 6e 64 65 78 20 30 29 |o ((arg-|index 0)|
|00003350| 29 0d 09 09 09 09 09 09 | 09 28 28 3e 3d 20 61 72 |).......|.((>= ar|
|00003360| 67 2d 69 6e 64 65 78 20 | 28 6c 65 6e 67 74 68 20 |g-index |(length |
|00003370| 61 72 67 73 29 29 20 28 | 2b 20 69 6e 64 65 78 20 |args)) (|+ index |
|00003380| 61 72 67 2d 69 6e 64 65 | 78 29 29 0d 09 09 09 09 |arg-inde|x)).....|
|00003390| 09 09 09 28 25 66 6f 72 | 6d 61 74 2d 6c 69 73 74 |...(%for|mat-list|
|000033a0| 20 73 74 72 65 61 6d 20 | 73 74 72 69 6e 67 20 28 | stream |string (|
|000033b0| 6e 74 68 20 61 72 67 2d | 69 6e 64 65 78 20 61 72 |nth arg-|index ar|
|000033c0| 67 73 29 29 0d 09 09 09 | 09 09 09 09 28 69 6e 63 |gs))....|....(inc|
|000033d0| 66 20 61 72 67 2d 69 6e | 64 65 78 29 29 29 29 0d |f arg-in|dex)))).|
|000033e0| 09 09 09 09 28 63 6f 6c | 6f 6e 2d 6d 6f 64 69 66 |....(col|on-modif|
|000033f0| 69 65 72 0d 09 09 09 09 | 09 28 72 65 74 75 72 6e |ier.....|.(return|
|00003400| 0d 09 09 09 09 09 09 28 | 64 6f 20 28 28 61 72 67 |.......(|do ((arg|
|00003410| 2d 69 6e 64 65 78 20 30 | 29 29 0d 09 09 09 09 09 |-index 0|))......|
|00003420| 09 09 28 28 3e 3d 20 61 | 72 67 2d 69 6e 64 65 78 |..((>= a|rg-index|
|00003430| 20 28 6c 65 6e 67 74 68 | 20 28 63 61 72 20 61 72 | (length| (car ar|
|00003440| 67 73 29 29 29 20 28 31 | 2b 20 69 6e 64 65 78 29 |gs))) (1|+ index)|
|00003450| 29 0d 09 09 09 09 09 09 | 09 28 25 66 6f 72 6d 61 |).......|.(%forma|
|00003460| 74 2d 6c 69 73 74 20 73 | 74 72 65 61 6d 20 73 74 |t-list s|tream st|
|00003470| 72 69 6e 67 20 28 6e 74 | 68 20 61 72 67 2d 69 6e |ring (nt|h arg-in|
|00003480| 64 65 78 20 28 63 61 72 | 20 61 72 67 73 29 29 29 |dex (car| args)))|
|00003490| 0d 09 09 09 09 09 09 09 | 28 69 6e 63 66 20 61 72 |........|(incf ar|
|000034a0| 67 2d 69 6e 64 65 78 29 | 29 29 29 0d 09 09 09 09 |g-index)|))).....|
|000034b0| 28 61 74 73 69 67 6e 2d | 6d 6f 64 69 66 69 65 72 |(atsign-|modifier|
|000034c0| 20 09 09 09 09 09 0d 09 | 09 09 09 09 28 72 65 74 | .......|....(ret|
|000034d0| 75 72 6e 20 0d 09 09 09 | 09 09 09 28 64 6f 20 28 |urn ....|...(do (|
|000034e0| 28 61 72 67 2d 69 6e 64 | 65 78 20 30 29 29 0d 09 |(arg-ind|ex 0))..|
|000034f0| 09 09 09 09 09 09 28 28 | 3e 3d 20 61 72 67 2d 69 |......((|>= arg-i|
|00003500| 6e 64 65 78 20 28 6c 65 | 6e 67 74 68 20 61 72 67 |ndex (le|ngth arg|
|00003510| 73 29 29 20 28 2b 20 69 | 6e 64 65 78 20 61 72 67 |s)) (+ i|ndex arg|
|00003520| 2d 69 6e 64 65 78 29 29 | 0d 09 09 09 09 09 09 09 |-index))|........|
|00003530| 28 69 6e 63 66 20 61 72 | 67 2d 69 6e 64 65 78 20 |(incf ar|g-index |
|00003540| 0d 09 09 09 09 09 09 09 | 09 28 25 66 6f 72 6d 61 |........|.(%forma|
|00003550| 74 2d 6c 69 73 74 20 73 | 74 72 65 61 6d 20 73 74 |t-list s|tream st|
|00003560| 72 69 6e 67 20 28 6e 74 | 68 63 64 72 20 61 72 67 |ring (nt|hcdr arg|
|00003570| 2d 69 6e 64 65 78 20 61 | 72 67 73 29 29 29 29 29 |-index a|rgs)))))|
|00003580| 29 0d 09 09 09 09 28 74 | 20 0d 09 09 09 09 09 28 |).....(t| ......(|
|00003590| 63 61 74 63 68 20 27 25 | 66 6f 72 6d 61 74 2d 75 |catch '%|format-u|
|000035a0| 70 2d 61 6e 64 2d 6f 75 | 74 0d 09 09 09 09 09 09 |p-and-ou|t.......|
|000035b0| 28 64 6f 20 28 28 61 72 | 67 2d 69 6e 64 65 78 20 |(do ((ar|g-index |
|000035c0| 30 29 29 0d 09 09 09 09 | 09 09 09 28 28 3e 3d 20 |0)).....|...((>= |
|000035d0| 61 72 67 2d 69 6e 64 65 | 78 20 28 6c 65 6e 67 74 |arg-inde|x (lengt|
|000035e0| 68 20 28 63 61 72 20 61 | 72 67 73 29 29 29 20 28 |h (car a|rgs))) (|
|000035f0| 31 2b 20 69 6e 64 65 78 | 29 29 0d 09 09 09 09 09 |1+ index|))......|
|00003600| 09 09 28 69 6e 63 66 20 | 61 72 67 2d 69 6e 64 65 |..(incf |arg-inde|
|00003610| 78 20 0d 09 09 09 09 09 | 09 09 09 28 25 66 6f 72 |x ......|...(%for|
|00003620| 6d 61 74 2d 6c 69 73 74 | 20 73 74 72 65 61 6d 20 |mat-list| stream |
|00003630| 73 74 72 69 6e 67 20 0d | 09 09 09 09 09 09 09 09 |string .|........|
|00003640| 09 28 6e 74 68 63 64 72 | 20 61 72 67 2d 69 6e 64 |.(nthcdr| arg-ind|
|00003650| 65 78 20 28 63 61 72 20 | 61 72 67 73 29 29 29 29 |ex (car |args))))|
|00003660| 29 29 0d 09 09 09 09 09 | 28 31 2b 20 69 6e 64 65 |))......|(1+ inde|
|00003670| 78 29 29 29 29 29 29 0d | 0d 28 25 73 65 74 2d 66 |x)))))).|.(%set-f|
|00003680| 6f 72 6d 61 74 2d 64 69 | 73 70 61 74 63 68 2d 66 |ormat-di|spatch-f|
|00003690| 75 6e 63 20 23 5c 5e 0d | 09 23 27 28 6c 61 6d 62 |unc #\^.|.#'(lamb|
|000036a0| 64 61 20 28 73 74 72 65 | 61 6d 20 61 72 67 73 20 |da (stre|am args |
|000036b0| 69 6e 64 65 78 20 61 74 | 73 69 67 6e 2d 6d 6f 64 |index at|sign-mod|
|000036c0| 69 66 69 65 72 20 63 6f | 6c 6f 6e 2d 6d 6f 64 69 |ifier co|lon-modi|
|000036d0| 66 69 65 72 20 63 6f 6e | 74 72 6f 6c 29 0d 09 09 |fier con|trol)...|
|000036e0| 28 73 65 74 71 20 61 72 | 67 73 20 28 6e 74 68 63 |(setq ar|gs (nthc|
|000036f0| 64 72 20 69 6e 64 65 78 | 20 61 72 67 73 29 29 0d |dr index| args)).|
|00003700| 09 09 28 75 6e 6c 65 73 | 73 20 61 72 67 73 20 28 |..(unles|s args (|
|00003710| 74 68 72 6f 77 20 27 25 | 66 6f 72 6d 61 74 2d 75 |throw '%|format-u|
|00003720| 70 2d 61 6e 64 2d 6f 75 | 74 20 6e 69 6c 29 29 0d |p-and-ou|t nil)).|
|00003730| 09 09 69 6e 64 65 78 29 | 29 0d 0d 28 25 73 65 74 |..index)|)..(%set|
|00003740| 2d 66 6f 72 6d 61 74 2d | 64 69 73 70 61 74 63 68 |-format-|dispatch|
|00003750| 2d 66 75 6e 63 20 23 5c | 26 20 0d 09 23 27 28 6c |-func #\|& ..#'(l|
|00003760| 61 6d 62 64 61 20 28 73 | 74 72 65 61 6d 20 61 72 |ambda (s|tream ar|
|00003770| 67 73 20 69 6e 64 65 78 | 20 61 74 73 69 67 6e 2d |gs index| atsign-|
|00003780| 6d 6f 64 69 66 69 65 72 | 20 63 6f 6c 6f 6e 2d 6d |modifier| colon-m|
|00003790| 6f 64 69 66 69 65 72 20 | 63 6f 6e 74 72 6f 6c 20 |odifier |control |
|000037a0| 0d 09 09 09 09 26 6f 70 | 74 69 6f 6e 61 6c 20 6e |.....&op|tional n|
|000037b0| 75 6d 29 0d 09 09 28 75 | 6e 6c 65 73 73 20 6e 75 |um)...(u|nless nu|
|000037c0| 6d 20 28 73 65 74 71 20 | 6e 75 6d 20 31 29 29 0d |m (setq |num 1)).|
|000037d0| 09 09 28 69 66 20 28 3e | 3d 20 6e 75 6d 20 31 29 |..(if (>|= num 1)|
|000037e0| 0d 09 09 09 28 70 72 6f | 67 6e 20 0d 09 09 09 09 |....(pro|gn .....|
|000037f0| 28 66 72 65 73 68 2d 6c | 69 6e 65 20 73 74 72 65 |(fresh-l|ine stre|
|00003800| 61 6d 29 0d 09 09 09 09 | 28 64 6f 74 69 6d 65 73 |am).....|(dotimes|
|00003810| 20 28 69 20 28 31 2d 20 | 6e 75 6d 29 29 0d 09 09 | (i (1- |num))...|
|00003820| 09 09 09 28 74 65 72 70 | 72 69 20 73 74 72 65 61 |...(terp|ri strea|
|00003830| 6d 29 29 29 29 0d 09 09 | 69 6e 64 65 78 29 29 0d |m))))...|index)).|
|00003840| 0d 28 25 73 65 74 2d 66 | 6f 72 6d 61 74 2d 64 69 |.(%set-f|ormat-di|
|00003850| 73 70 61 74 63 68 2d 66 | 75 6e 63 20 23 5c 7c 20 |spatch-f|unc #\| |
|00003860| 0d 09 23 27 28 6c 61 6d | 62 64 61 20 28 73 74 72 |..#'(lam|bda (str|
|00003870| 65 61 6d 20 61 72 67 73 | 20 69 6e 64 65 78 20 61 |eam args| index a|
|00003880| 74 73 69 67 6e 2d 6d 6f | 64 69 66 69 65 72 20 63 |tsign-mo|difier c|
|00003890| 6f 6c 6f 6e 2d 6d 6f 64 | 69 66 69 65 72 20 63 6f |olon-mod|ifier co|
|000038a0| 6e 74 72 6f 6c 20 0d 09 | 09 09 09 26 6f 70 74 69 |ntrol ..|...&opti|
|000038b0| 6f 6e 61 6c 20 6e 75 6d | 29 0d 09 09 28 75 6e 6c |onal num|)...(unl|
|000038c0| 65 73 73 20 6e 75 6d 20 | 28 73 65 74 71 20 6e 75 |ess num |(setq nu|
|000038d0| 6d 20 31 29 29 0d 09 09 | 28 64 6f 74 69 6d 65 73 |m 1))...|(dotimes|
|000038e0| 20 28 69 20 6e 75 6d 29 | 0d 09 09 09 28 77 72 69 | (i num)|....(wri|
|000038f0| 74 65 2d 63 68 61 72 20 | 28 69 6e 74 2d 63 68 61 |te-char |(int-cha|
|00003900| 72 20 31 32 29 20 73 74 | 72 65 61 6d 29 29 0d 09 |r 12) st|ream))..|
|00003910| 09 69 6e 64 65 78 29 29 | 0d 0d 28 25 73 65 74 2d |.index))|..(%set-|
|00003920| 66 6f 72 6d 61 74 2d 64 | 69 73 70 61 74 63 68 2d |format-d|ispatch-|
|00003930| 66 75 6e 63 20 23 5c 4e | 65 77 6c 69 6e 65 20 0d |func #\N|ewline .|
|00003940| 09 23 27 28 6c 61 6d 62 | 64 61 20 28 73 74 72 65 |.#'(lamb|da (stre|
|00003950| 61 6d 20 61 72 67 73 20 | 69 6e 64 65 78 20 61 74 |am args |index at|
|00003960| 73 69 67 6e 2d 6d 6f 64 | 69 66 69 65 72 20 63 6f |sign-mod|ifier co|
|00003970| 6c 6f 6e 2d 6d 6f 64 69 | 66 69 65 72 20 63 6f 6e |lon-modi|fier con|
|00003980| 74 72 6f 6c 29 0d 09 09 | 3b 3b 20 69 66 20 61 74 |trol)...|;; if at|
|00003990| 73 69 67 6e 2c 20 70 72 | 6f 63 65 73 73 20 74 68 |sign, pr|ocess th|
|000039a0| 65 20 6e 65 77 6c 69 6e | 65 0d 09 09 28 69 66 20 |e newlin|e...(if |
|000039b0| 61 74 73 69 67 6e 2d 6d | 6f 64 69 66 69 65 72 0d |atsign-m|odifier.|
|000039c0| 09 09 09 28 74 65 72 70 | 72 69 20 73 74 72 65 61 |...(terp|ri strea|
|000039d0| 6d 29 29 0d 09 09 3b 3b | 20 73 6b 69 70 20 77 68 |m))...;;| skip wh|
|000039e0| 69 74 65 73 70 61 63 65 | 0d 09 09 28 75 6e 6c 65 |itespace|...(unle|
|000039f0| 73 73 20 63 6f 6c 6f 6e | 2d 6d 6f 64 69 66 69 65 |ss colon|-modifie|
|00003a00| 72 0d 09 09 09 28 64 6f | 20 28 28 63 20 28 63 68 |r....(do| ((c (ch|
|00003a10| 61 72 20 28 63 61 72 20 | 63 6f 6e 74 72 6f 6c 29 |ar (car |control)|
|00003a20| 20 28 63 61 64 72 20 63 | 6f 6e 74 72 6f 6c 29 29 | (cadr c|ontrol))|
|00003a30| 20 0d 09 09 09 09 09 28 | 63 68 61 72 20 28 63 61 | ......(|char (ca|
|00003a40| 72 20 63 6f 6e 74 72 6f | 6c 29 20 28 63 61 64 72 |r contro|l) (cadr|
|00003a50| 20 63 6f 6e 74 72 6f 6c | 29 29 29 29 0d 09 09 09 | control|))))....|
|00003a60| 09 28 28 6e 6f 74 20 28 | 6f 72 20 28 63 68 61 72 |.((not (|or (char|
|00003a70| 3d 20 63 20 23 5c 53 70 | 61 63 65 29 20 28 63 68 |= c #\Sp|ace) (ch|
|00003a80| 61 72 3d 20 63 20 23 5c | 54 61 62 29 29 29 29 0d |ar= c #\|Tab)))).|
|00003a90| 09 09 09 09 28 69 6e 63 | 66 20 28 63 61 64 72 20 |....(inc|f (cadr |
|00003aa0| 63 6f 6e 74 72 6f 6c 29 | 29 29 0d 09 09 09 69 6e |control)|))....in|
|00003ab0| 64 65 78 29 29 29 0d 0d | 28 25 73 65 74 2d 66 6f |dex)))..|(%set-fo|
|00003ac0| 72 6d 61 74 2d 64 69 73 | 70 61 74 63 68 2d 66 75 |rmat-dis|patch-fu|
|00003ad0| 6e 63 20 23 5c 54 20 0d | 09 23 27 28 6c 61 6d 62 |nc #\T .|.#'(lamb|
|00003ae0| 64 61 20 28 73 74 72 65 | 61 6d 20 61 72 67 73 20 |da (stre|am args |
|00003af0| 69 6e 64 65 78 20 61 74 | 73 69 67 6e 2d 6d 6f 64 |index at|sign-mod|
|00003b00| 69 66 69 65 72 20 63 6f | 6c 6f 6e 2d 6d 6f 64 69 |ifier co|lon-modi|
|00003b10| 66 69 65 72 20 63 6f 6e | 74 72 6f 6c 20 0d 09 09 |fier con|trol ...|
|00003b20| 09 09 26 6f 70 74 69 6f | 6e 61 6c 20 63 6f 6c 6e |..&optio|nal coln|
|00003b30| 75 6d 20 63 6f 6c 69 6e | 63 29 0d 09 09 28 75 6e |um colin|c)...(un|
|00003b40| 6c 65 73 73 20 63 6f 6c | 6e 75 6d 20 28 73 65 74 |less col|num (set|
|00003b50| 71 20 63 6f 6c 6e 75 6d | 20 31 29 29 0d 09 09 28 |q colnum| 1))...(|
|00003b60| 75 6e 6c 65 73 73 20 63 | 6f 6c 69 6e 63 20 28 73 |unless c|olinc (s|
|00003b70| 65 74 71 20 63 6f 6c 69 | 6e 63 20 31 29 29 0d 09 |etq coli|nc 1))..|
|00003b80| 09 28 69 66 20 61 74 73 | 69 67 6e 2d 6d 6f 64 69 |.(if ats|ign-modi|
|00003b90| 66 69 65 72 0d 09 09 09 | 28 70 72 6f 67 6e 0d 09 |fier....|(progn..|
|00003ba0| 09 09 09 28 64 6f 74 69 | 6d 65 73 20 28 69 20 63 |...(doti|mes (i c|
|00003bb0| 6f 6c 6e 75 6d 29 0d 09 | 09 09 09 09 28 77 72 69 |olnum)..|....(wri|
|00003bc0| 74 65 2d 63 68 61 72 20 | 23 5c 53 70 61 63 65 20 |te-char |#\Space |
|00003bd0| 73 74 72 65 61 6d 29 29 | 0d 09 09 09 09 28 64 6f |stream))|.....(do|
|00003be0| 74 69 6d 65 73 20 28 69 | 20 28 2d 20 63 6f 6c 69 |times (i| (- coli|
|00003bf0| 6e 63 20 28 6d 6f 64 20 | 28 73 74 72 65 61 6d 2d |nc (mod |(stream-|
|00003c00| 63 6f 6c 75 6d 6e 20 73 | 74 72 65 61 6d 29 20 63 |column s|tream) c|
|00003c10| 6f 6c 69 6e 63 29 29 29 | 0d 09 09 09 09 09 28 77 |olinc)))|......(w|
|00003c20| 72 69 74 65 2d 63 68 61 | 72 20 23 5c 53 70 61 63 |rite-cha|r #\Spac|
|00003c30| 65 20 73 74 72 65 61 6d | 29 29 29 0d 09 09 09 28 |e stream|)))....(|
|00003c40| 6c 65 74 20 28 28 63 75 | 72 72 65 6e 74 2d 70 6f |let ((cu|rrent-po|
|00003c50| 73 69 74 69 6f 6e 20 28 | 73 74 72 65 61 6d 2d 63 |sition (|stream-c|
|00003c60| 6f 6c 75 6d 6e 20 73 74 | 72 65 61 6d 29 29 29 0d |olumn st|ream))).|
|00003c70| 09 09 09 09 28 69 66 20 | 28 3e 20 63 6f 6c 6e 75 |....(if |(> colnu|
|00003c80| 6d 20 63 75 72 72 65 6e | 74 2d 70 6f 73 69 74 69 |m curren|t-positi|
|00003c90| 6f 6e 29 0d 09 09 09 09 | 09 28 64 6f 74 69 6d 65 |on).....|.(dotime|
|00003ca0| 73 20 28 69 20 28 2d 20 | 63 6f 6c 6e 75 6d 20 63 |s (i (- |colnum c|
|00003cb0| 75 72 72 65 6e 74 2d 70 | 6f 73 69 74 69 6f 6e 29 |urrent-p|osition)|
|00003cc0| 29 0d 09 09 09 09 09 09 | 28 77 72 69 74 65 2d 63 |).......|(write-c|
|00003cd0| 68 61 72 20 23 5c 53 70 | 61 63 65 20 73 74 72 65 |har #\Sp|ace stre|
|00003ce0| 61 6d 29 29 0d 09 09 09 | 09 09 28 69 66 20 28 3e |am))....|..(if (>|
|00003cf0| 20 63 6f 6c 69 6e 63 20 | 30 29 0d 09 09 09 09 09 | colinc |0)......|
|00003d00| 09 28 64 6f 74 69 6d 65 | 73 20 28 69 20 28 2d 20 |.(dotime|s (i (- |
|00003d10| 63 6f 6c 69 6e 63 20 28 | 6d 6f 64 20 28 2d 20 63 |colinc (|mod (- c|
|00003d20| 75 72 72 65 6e 74 2d 70 | 6f 73 69 74 69 6f 6e 20 |urrent-p|osition |
|00003d30| 63 6f 6c 6e 75 6d 29 20 | 63 6f 6c 69 6e 63 29 29 |colnum) |colinc))|
|00003d40| 29 0d 09 09 09 09 09 09 | 09 28 77 72 69 74 65 2d |).......|.(write-|
|00003d50| 63 68 61 72 20 23 5c 53 | 70 61 63 65 20 73 74 72 |char #\S|pace str|
|00003d60| 65 61 6d 29 29 29 29 29 | 29 0d 09 09 69 6e 64 65 |eam)))))|)...inde|
|00003d70| 78 29 29 0d 0d 28 25 73 | 65 74 2d 66 6f 72 6d 61 |x))..(%s|et-forma|
|00003d80| 74 2d 64 69 73 70 61 74 | 63 68 2d 66 75 6e 63 20 |t-dispat|ch-func |
|00003d90| 23 5c 2a 20 0d 09 23 27 | 28 6c 61 6d 62 64 61 20 |#\* ..#'|(lambda |
|00003da0| 28 73 74 72 65 61 6d 20 | 61 72 67 73 20 69 6e 64 |(stream |args ind|
|00003db0| 65 78 20 61 74 73 69 67 | 6e 2d 6d 6f 64 69 66 69 |ex atsig|n-modifi|
|00003dc0| 65 72 20 63 6f 6c 6f 6e | 2d 6d 6f 64 69 66 69 65 |er colon|-modifie|
|00003dd0| 72 20 63 6f 6e 74 72 6f | 6c 20 0d 09 09 09 09 26 |r contro|l .....&|
|00003de0| 6f 70 74 69 6f 6e 61 6c | 20 6e 75 6d 29 0d 09 09 |optional| num)...|
|00003df0| 28 75 6e 6c 65 73 73 20 | 6e 75 6d 20 28 69 66 20 |(unless |num (if |
|00003e00| 61 74 73 69 67 6e 2d 6d | 6f 64 69 66 69 65 72 20 |atsign-m|odifier |
|00003e10| 28 73 65 74 71 20 6e 75 | 6d 20 30 29 20 28 73 65 |(setq nu|m 0) (se|
|00003e20| 74 71 20 6e 75 6d 20 31 | 29 29 29 0d 09 09 28 69 |tq num 1|)))...(i|
|00003e30| 66 20 61 74 73 69 67 6e | 2d 6d 6f 64 69 66 69 65 |f atsign|-modifie|
|00003e40| 72 0d 09 09 09 28 72 65 | 74 75 72 6e 20 6e 75 6d |r....(re|turn num|
|00003e50| 29 29 0d 09 09 28 69 66 | 20 63 6f 6c 6f 6e 2d 6d |))...(if| colon-m|
|00003e60| 6f 64 69 66 69 65 72 20 | 28 72 65 74 75 72 6e 20 |odifier |(return |
|00003e70| 28 2d 20 69 6e 64 65 78 | 20 6e 75 6d 29 29 29 0d |(- index| num))).|
|00003e80| 09 09 28 72 65 74 75 72 | 6e 20 28 2b 20 69 6e 64 |..(retur|n (+ ind|
|00003e90| 65 78 20 6e 75 6d 29 29 | 29 29 0d 0d 28 64 65 66 |ex num))|))..(def|
|00003ea0| 75 6e 20 25 66 6f 72 6d | 61 74 2d 69 6e 74 65 67 |un %form|at-integ|
|00003eb0| 65 72 20 28 73 74 72 65 | 61 6d 20 69 6e 74 20 72 |er (stre|am int r|
|00003ec0| 61 64 69 78 20 61 74 73 | 69 67 6e 2d 6d 6f 64 69 |adix ats|ign-modi|
|00003ed0| 66 69 65 72 20 63 6f 6c | 6f 6e 2d 6d 6f 64 69 66 |fier col|on-modif|
|00003ee0| 69 65 72 20 0d 09 09 09 | 09 6d 69 6e 63 6f 6c 20 |ier ....|.mincol |
|00003ef0| 70 61 64 63 68 61 72 20 | 63 6f 6d 6d 61 63 68 61 |padchar |commacha|
|00003f00| 72 29 0d 0d 09 09 3b 3b | 20 69 6e 69 74 69 61 6c |r)....;;| initial|
|00003f10| 69 7a 65 20 64 65 66 61 | 75 6c 74 73 0d 09 09 28 |ize defa|ults...(|
|00003f20| 75 6e 6c 65 73 73 20 6d | 69 6e 63 6f 6c 20 28 73 |unless m|incol (s|
|00003f30| 65 74 71 20 6d 69 6e 63 | 6f 6c 20 30 29 29 0d 09 |etq minc|ol 0))..|
|00003f40| 09 28 73 65 74 71 20 70 | 61 64 63 68 61 72 20 28 |.(setq p|adchar (|
|00003f50| 69 66 20 70 61 64 63 68 | 61 72 20 28 69 6e 74 2d |if padch|ar (int-|
|00003f60| 63 68 61 72 20 70 61 64 | 63 68 61 72 29 20 23 5c |char pad|char) #\|
|00003f70| 53 70 61 63 65 29 29 0d | 09 09 28 73 65 74 71 20 |Space)).|..(setq |
|00003f80| 63 6f 6d 6d 61 63 68 61 | 72 20 28 69 66 20 63 6f |commacha|r (if co|
|00003f90| 6d 6d 61 63 68 61 72 20 | 28 69 6e 74 2d 63 68 61 |mmachar |(int-cha|
|00003fa0| 72 20 63 6f 6d 6d 61 63 | 68 61 72 29 20 23 5c 2c |r commac|har) #\,|
|00003fb0| 29 29 0d 0d 09 09 28 6c | 65 74 20 28 28 2a 70 72 |))....(l|et ((*pr|
|00003fc0| 69 6e 74 2d 62 61 73 65 | 2a 20 72 61 64 69 78 29 |int-base|* radix)|
|00003fd0| 0d 09 09 09 20 20 28 2a | 70 72 69 6e 74 2d 72 61 |.... (*|print-ra|
|00003fe0| 64 69 78 2a 20 6e 69 6c | 29 0d 09 09 09 20 20 73 |dix* nil|).... s|
|00003ff0| 0d 09 09 09 20 20 28 6c | 65 6e 67 74 68 20 30 29 |.... (l|ength 0)|
|00004000| 0d 09 09 09 20 20 73 69 | 67 6e 29 0d 0d 09 09 09 |.... si|gn).....|
|00004010| 28 69 66 20 28 61 6e 64 | 20 61 74 73 69 67 6e 2d |(if (and| atsign-|
|00004020| 6d 6f 64 69 66 69 65 72 | 20 28 70 6c 75 73 70 20 |modifier| (plusp |
|00004030| 69 6e 74 29 29 0d 09 09 | 09 09 28 70 72 6f 67 6e |int))...|..(progn|
|00004040| 20 28 73 65 74 66 20 73 | 69 67 6e 20 23 5c 2b 29 | (setf s|ign #\+)|
|00004050| 20 28 69 6e 63 66 20 6c | 65 6e 67 74 68 29 29 0d | (incf l|ength)).|
|00004060| 09 09 09 09 28 69 66 20 | 28 6d 69 6e 75 73 70 20 |....(if |(minusp |
|00004070| 69 6e 74 29 0d 09 09 09 | 09 09 28 70 72 6f 67 6e |int)....|..(progn|
|00004080| 20 28 73 65 74 66 20 73 | 69 67 6e 20 23 5c 2d 29 | (setf s|ign #\-)|
|00004090| 20 28 69 6e 63 66 20 6c | 65 6e 67 74 68 29 20 28 | (incf l|ength) (|
|000040a0| 73 65 74 66 20 69 6e 74 | 20 28 2d 20 69 6e 74 29 |setf int| (- int)|
|000040b0| 29 29 29 29 0d 0d 09 09 | 09 28 73 65 74 71 20 73 |))))....|.(setq s|
|000040c0| 20 28 77 69 74 68 2d 6f | 75 74 70 75 74 2d 74 6f | (with-o|utput-to|
|000040d0| 2d 73 74 72 69 6e 67 20 | 28 78 29 20 28 70 72 69 |-string |(x) (pri|
|000040e0| 6e 63 20 69 6e 74 20 78 | 29 29 29 0d 09 09 09 28 |nc int x|)))....(|
|000040f0| 69 6e 63 66 20 6c 65 6e | 67 74 68 20 28 6c 65 6e |incf len|gth (len|
|00004100| 67 74 68 20 73 29 29 0d | 09 09 09 28 69 66 20 63 |gth s)).|...(if c|
|00004110| 6f 6c 6f 6e 2d 6d 6f 64 | 69 66 69 65 72 20 0d 09 |olon-mod|ifier ..|
|00004120| 09 09 09 28 69 6e 63 66 | 20 6c 65 6e 67 74 68 20 |...(incf| length |
|00004130| 28 74 72 75 6e 63 61 74 | 65 20 28 31 2d 20 28 6c |(truncat|e (1- (l|
|00004140| 65 6e 67 74 68 20 73 29 | 29 20 33 29 29 29 0d 09 |ength s)|) 3)))..|
|00004150| 09 09 28 69 66 20 28 3c | 20 6c 65 6e 67 74 68 20 |..(if (<| length |
|00004160| 6d 69 6e 63 6f 6c 29 0d | 09 09 09 09 28 64 6f 74 |mincol).|....(dot|
|00004170| 69 6d 65 73 20 28 69 20 | 28 2d 20 6d 69 6e 63 6f |imes (i |(- minco|
|00004180| 6c 20 6c 65 6e 67 74 68 | 29 29 0d 09 09 09 09 09 |l length|))......|
|00004190| 28 77 72 69 74 65 2d 63 | 68 61 72 20 70 61 64 63 |(write-c|har padc|
|000041a0| 68 61 72 20 73 74 72 65 | 61 6d 29 29 29 0d 0d 09 |har stre|am)))...|
|000041b0| 09 09 28 69 66 20 73 69 | 67 6e 20 28 77 72 69 74 |..(if si|gn (writ|
|000041c0| 65 2d 63 68 61 72 20 73 | 69 67 6e 20 73 74 72 65 |e-char s|ign stre|
|000041d0| 61 6d 29 29 0d 0d 09 09 | 09 28 69 66 20 63 6f 6c |am))....|.(if col|
|000041e0| 6f 6e 2d 6d 6f 64 69 66 | 69 65 72 0d 09 09 09 09 |on-modif|ier.....|
|000041f0| 28 64 6f 74 69 6d 65 73 | 20 28 69 20 28 6c 65 6e |(dotimes| (i (len|
|00004200| 67 74 68 20 73 29 29 0d | 09 09 09 09 09 28 77 72 |gth s)).|.....(wr|
|00004210| 69 74 65 2d 63 68 61 72 | 20 28 63 68 61 72 20 73 |ite-char| (char s|
|00004220| 20 69 29 20 73 74 72 65 | 61 6d 29 0d 09 09 09 09 | i) stre|am).....|
|00004230| 09 28 6c 65 74 2a 20 28 | 28 64 69 67 69 74 73 2d |.(let* (|(digits-|
|00004240| 6c 65 66 74 20 28 2d 20 | 28 6c 65 6e 67 74 68 20 |left (- |(length |
|00004250| 73 29 20 28 31 2b 20 69 | 29 29 29 0d 09 09 09 09 |s) (1+ i|))).....|
|00004260| 09 09 20 20 20 28 64 69 | 67 69 74 2d 70 6f 73 20 |.. (di|git-pos |
|00004270| 28 6d 6f 64 20 64 69 67 | 69 74 73 2d 6c 65 66 74 |(mod dig|its-left|
|00004280| 20 33 29 29 29 0d 09 09 | 09 09 09 09 28 69 66 20 | 3)))...|....(if |
|00004290| 28 61 6e 64 20 28 7a 65 | 72 6f 70 20 64 69 67 69 |(and (ze|rop digi|
|000042a0| 74 2d 70 6f 73 29 20 28 | 70 6c 75 73 70 20 64 69 |t-pos) (|plusp di|
|000042b0| 67 69 74 73 2d 6c 65 66 | 74 29 29 0d 09 09 09 09 |gits-lef|t)).....|
|000042c0| 09 09 09 28 77 72 69 74 | 65 2d 63 68 61 72 20 63 |...(writ|e-char c|
|000042d0| 6f 6d 6d 61 63 68 61 72 | 20 73 74 72 65 61 6d 29 |ommachar| stream)|
|000042e0| 29 29 29 0d 09 09 09 09 | 28 70 72 69 6e 63 20 73 |))).....|(princ s|
|000042f0| 20 73 74 72 65 61 6d 29 | 29 29 29 20 20 0d 0d 28 | stream)|))) ..(|
|00004300| 64 65 66 63 6f 6e 73 74 | 61 6e 74 20 2a 66 6f 72 |defconst|ant *for|
|00004310| 6d 61 74 2d 63 61 72 64 | 69 6e 61 6c 73 2a 0d 09 |mat-card|inals*..|
|00004320| 23 28 22 7a 65 72 6f 22 | 20 22 6f 6e 65 22 20 22 |#("zero"| "one" "|
|00004330| 74 77 6f 22 20 22 74 68 | 72 65 65 22 20 22 66 6f |two" "th|ree" "fo|
|00004340| 75 72 22 20 22 66 69 76 | 65 22 20 22 73 69 78 22 |ur" "fiv|e" "six"|
|00004350| 20 22 73 65 76 65 6e 22 | 20 22 65 69 67 68 74 22 | "seven"| "eight"|
|00004360| 20 22 6e 69 6e 65 22 20 | 22 74 65 6e 22 0d 09 20 | "nine" |"ten".. |
|00004370| 20 22 74 77 65 6e 74 79 | 22 20 22 74 68 69 72 74 | "twenty|" "thirt|
|00004380| 79 22 20 22 66 6f 72 74 | 79 22 20 22 66 69 66 74 |y" "fort|y" "fift|
|00004390| 79 22 20 22 73 69 78 74 | 79 22 20 22 73 65 76 65 |y" "sixt|y" "seve|
|000043a0| 6e 74 79 22 20 22 65 69 | 67 68 74 79 22 20 22 6e |nty" "ei|ghty" "n|
|000043b0| 69 6e 65 74 79 22 20 22 | 68 75 6e 64 72 65 64 22 |inety" "|hundred"|
|000043c0| 0d 09 20 20 22 74 68 6f | 75 73 61 6e 64 22 20 22 |.. "tho|usand" "|
|000043d0| 6d 69 6c 6c 69 6f 6e 22 | 20 22 62 69 6c 6c 69 6f |million"| "billio|
|000043e0| 6e 22 20 22 74 72 69 6c | 6c 69 6f 6e 22 29 29 0d |n" "tril|lion")).|
|000043f0| 0d 28 64 65 66 75 6e 20 | 25 66 6f 72 6d 61 74 2d |.(defun |%format-|
|00004400| 63 61 72 64 69 6e 61 6c | 2d 6e 75 6d 62 65 72 20 |cardinal|-number |
|00004410| 28 69 6e 74 20 73 74 72 | 65 61 6d 29 0d 09 09 28 |(int str|eam)...(|
|00004420| 69 66 20 28 7a 65 72 6f | 70 20 69 6e 74 29 20 28 |if (zero|p int) (|
|00004430| 72 65 74 75 72 6e 20 28 | 70 72 69 6e 63 20 22 7a |return (|princ "z|
|00004440| 65 72 6f 22 20 73 74 72 | 65 61 6d 29 29 29 0d 09 |ero" str|eam)))..|
|00004450| 09 28 69 66 20 28 6d 69 | 6e 75 73 70 20 69 6e 74 |.(if (mi|nusp int|
|00004460| 29 20 0d 09 09 09 28 70 | 72 6f 67 6e 20 28 70 72 |) ....(p|rogn (pr|
|00004470| 69 6e 63 20 22 6e 65 67 | 61 74 69 76 65 20 22 20 |inc "neg|ative " |
|00004480| 73 74 72 65 61 6d 29 20 | 28 73 65 74 71 20 69 6e |stream) |(setq in|
|00004490| 74 20 28 2d 20 69 6e 74 | 29 29 29 29 0d 09 09 28 |t (- int|))))...(|
|000044a0| 63 6f 6e 64 0d 09 09 09 | 28 28 3c 20 69 6e 74 20 |cond....|((< int |
|000044b0| 32 30 29 0d 09 09 09 20 | 28 70 72 69 6e 63 20 28 |20).... |(princ (|
|000044c0| 6e 74 68 20 69 6e 74 20 | 27 28 22 7a 65 72 6f 22 |nth int |'("zero"|
|000044d0| 20 22 6f 6e 65 22 20 22 | 74 77 6f 22 20 22 74 68 | "one" "|two" "th|
|000044e0| 72 65 65 22 20 22 66 6f | 75 72 22 20 22 66 69 76 |ree" "fo|ur" "fiv|
|000044f0| 65 22 20 0d 09 09 09 09 | 09 22 73 69 78 22 20 22 |e" .....|."six" "|
|00004500| 73 65 76 65 6e 22 20 22 | 65 69 67 68 74 22 20 22 |seven" "|eight" "|
|00004510| 6e 69 6e 65 22 20 22 74 | 65 6e 22 20 22 65 6c 65 |nine" "t|en" "ele|
|00004520| 76 65 6e 22 20 22 74 77 | 65 6c 76 65 22 20 22 74 |ven" "tw|elve" "t|
|00004530| 68 69 72 74 65 65 6e 22 | 0d 09 09 09 09 09 22 66 |hirteen"|......"f|
|00004540| 6f 75 72 74 65 65 6e 22 | 20 22 66 69 66 74 65 65 |ourteen"| "fiftee|
|00004550| 6e 22 20 22 73 69 78 74 | 65 65 6e 22 20 22 73 65 |n" "sixt|een" "se|
|00004560| 76 65 6e 74 65 65 6e 22 | 20 22 65 69 67 68 74 65 |venteen"| "eighte|
|00004570| 65 6e 22 20 22 6e 69 6e | 65 74 65 65 6e 22 29 29 |en" "nin|eteen"))|
|00004580| 20 0d 09 09 09 09 73 74 | 72 65 61 6d 29 29 0d 09 | .....st|ream))..|
|00004590| 09 09 28 28 3c 20 69 6e | 74 20 31 30 30 29 0d 09 |..((< in|t 100)..|
|000045a0| 09 09 20 28 70 72 69 6e | 63 20 28 6e 74 68 20 28 |.. (prin|c (nth (|
|000045b0| 2d 20 28 74 72 75 6e 63 | 61 74 65 20 69 6e 74 20 |- (trunc|ate int |
|000045c0| 31 30 29 20 32 29 20 27 | 28 22 74 77 65 6e 74 79 |10) 2) '|("twenty|
|000045d0| 22 20 22 74 68 69 72 74 | 79 22 20 22 66 6f 72 74 |" "thirt|y" "fort|
|000045e0| 79 22 0d 09 09 09 09 09 | 09 09 22 66 69 66 74 79 |y"......|.."fifty|
|000045f0| 22 20 22 73 69 78 74 79 | 22 20 22 73 65 76 65 6e |" "sixty|" "seven|
|00004600| 74 79 22 20 22 65 69 67 | 68 74 79 22 20 22 6e 69 |ty" "eig|hty" "ni|
|00004610| 6e 65 74 79 22 29 29 20 | 73 74 72 65 61 6d 29 0d |nety")) |stream).|
|00004620| 09 09 09 20 28 69 66 20 | 28 70 6c 75 73 70 20 28 |... (if |(plusp (|
|00004630| 6d 6f 64 20 69 6e 74 20 | 31 30 29 29 20 0d 09 09 |mod int |10)) ...|
|00004640| 09 09 28 70 72 6f 67 6e | 20 0d 09 09 09 09 09 28 |..(progn| ......(|
|00004650| 77 72 69 74 65 2d 63 68 | 61 72 20 23 5c 2d 20 73 |write-ch|ar #\- s|
|00004660| 74 72 65 61 6d 29 0d 09 | 09 09 09 09 28 25 66 6f |tream)..|....(%fo|
|00004670| 72 6d 61 74 2d 63 61 72 | 64 69 6e 61 6c 2d 6e 75 |rmat-car|dinal-nu|
|00004680| 6d 62 65 72 20 28 6d 6f | 64 20 69 6e 74 20 31 30 |mber (mo|d int 10|
|00004690| 29 20 73 74 72 65 61 6d | 29 29 29 29 0d 09 09 09 |) stream|))))....|
|000046a0| 28 28 3c 20 69 6e 74 20 | 31 30 30 30 29 0d 09 09 |((< int |1000)...|
|000046b0| 09 20 28 25 66 6f 72 6d | 61 74 2d 63 61 72 64 69 |. (%form|at-cardi|
|000046c0| 6e 61 6c 2d 6e 75 6d 62 | 65 72 20 28 74 72 75 6e |nal-numb|er (trun|
|000046d0| 63 61 74 65 20 69 6e 74 | 20 31 30 30 29 20 73 74 |cate int| 100) st|
|000046e0| 72 65 61 6d 29 0d 09 09 | 09 20 28 70 72 69 6e 63 |ream)...|. (princ|
|000046f0| 20 22 20 68 75 6e 64 72 | 65 64 22 20 73 74 72 65 | " hundr|ed" stre|
|00004700| 61 6d 29 0d 09 09 09 20 | 28 69 66 20 28 70 6c 75 |am).... |(if (plu|
|00004710| 73 70 20 28 6d 6f 64 20 | 69 6e 74 20 31 30 30 29 |sp (mod |int 100)|
|00004720| 29 0d 09 09 09 09 28 70 | 72 6f 67 6e 09 0d 09 09 |).....(p|rogn....|
|00004730| 09 09 09 28 77 72 69 74 | 65 2d 63 68 61 72 20 23 |...(writ|e-char #|
|00004740| 5c 53 70 61 63 65 20 73 | 74 72 65 61 6d 29 09 09 |\Space s|tream)..|
|00004750| 20 0d 09 09 09 09 09 28 | 25 66 6f 72 6d 61 74 2d | ......(|%format-|
|00004760| 63 61 72 64 69 6e 61 6c | 2d 6e 75 6d 62 65 72 20 |cardinal|-number |
|00004770| 28 6d 6f 64 20 69 6e 74 | 20 31 30 30 29 20 73 74 |(mod int| 100) st|
|00004780| 72 65 61 6d 29 29 29 29 | 0d 09 09 09 28 28 3c 20 |ream))))|....((< |
|00004790| 69 6e 74 20 31 30 30 30 | 30 30 30 29 0d 09 09 09 |int 1000|000)....|
|000047a0| 20 28 25 66 6f 72 6d 61 | 74 2d 63 61 72 64 69 6e | (%forma|t-cardin|
|000047b0| 61 6c 2d 6e 75 6d 62 65 | 72 20 28 74 72 75 6e 63 |al-numbe|r (trunc|
|000047c0| 61 74 65 20 69 6e 74 20 | 31 30 30 30 29 20 73 74 |ate int |1000) st|
|000047d0| 72 65 61 6d 29 0d 09 09 | 09 20 28 70 72 69 6e 63 |ream)...|. (princ|
|000047e0| 20 22 20 74 68 6f 75 73 | 61 6e 64 22 20 73 74 72 | " thous|and" str|
|000047f0| 65 61 6d 29 0d 09 09 09 | 20 28 69 66 20 28 70 6c |eam)....| (if (pl|
|00004800| 75 73 70 20 28 6d 6f 64 | 20 69 6e 74 20 31 30 30 |usp (mod| int 100|
|00004810| 30 29 29 0d 09 09 09 09 | 28 70 72 6f 67 6e 09 0d |0)).....|(progn..|
|00004820| 09 09 09 09 09 28 77 72 | 69 74 65 2d 63 68 61 72 |.....(wr|ite-char|
|00004830| 20 23 5c 53 70 61 63 65 | 20 73 74 72 65 61 6d 29 | #\Space| stream)|
|00004840| 09 09 20 0d 09 09 09 09 | 09 28 25 66 6f 72 6d 61 |.. .....|.(%forma|
|00004850| 74 2d 63 61 72 64 69 6e | 61 6c 2d 6e 75 6d 62 65 |t-cardin|al-numbe|
|00004860| 72 20 28 6d 6f 64 20 69 | 6e 74 20 31 30 30 30 29 |r (mod i|nt 1000)|
|00004870| 20 73 74 72 65 61 6d 29 | 29 29 29 0d 09 09 09 28 | stream)|)))....(|
|00004880| 28 3c 20 69 6e 74 20 31 | 30 30 30 30 30 30 30 30 |(< int 1|00000000|
|00004890| 30 29 0d 09 09 09 20 28 | 25 66 6f 72 6d 61 74 2d |0).... (|%format-|
|000048a0| 63 61 72 64 69 6e 61 6c | 2d 6e 75 6d 62 65 72 20 |cardinal|-number |
|000048b0| 28 74 72 75 6e 63 61 74 | 65 20 69 6e 74 20 31 30 |(truncat|e int 10|
|000048c0| 30 30 30 30 30 29 20 73 | 74 72 65 61 6d 29 0d 09 |00000) s|tream)..|
|000048d0| 09 09 20 28 70 72 69 6e | 63 20 22 20 6d 69 6c 6c |.. (prin|c " mill|
|000048e0| 69 6f 6e 22 20 73 74 72 | 65 61 6d 29 0d 09 09 09 |ion" str|eam)....|
|000048f0| 20 28 69 66 20 28 70 6c | 75 73 70 20 28 6d 6f 64 | (if (pl|usp (mod|
|00004900| 20 69 6e 74 20 31 30 30 | 30 30 30 30 29 29 0d 09 | int 100|0000))..|
|00004910| 09 09 09 28 70 72 6f 67 | 6e 09 0d 09 09 09 09 09 |...(prog|n.......|
|00004920| 28 77 72 69 74 65 2d 63 | 68 61 72 20 23 5c 53 70 |(write-c|har #\Sp|
|00004930| 61 63 65 20 73 74 72 65 | 61 6d 29 09 09 20 0d 09 |ace stre|am).. ..|
|00004940| 09 09 09 09 28 25 66 6f | 72 6d 61 74 2d 63 61 72 |....(%fo|rmat-car|
|00004950| 64 69 6e 61 6c 2d 6e 75 | 6d 62 65 72 20 28 6d 6f |dinal-nu|mber (mo|
|00004960| 64 20 69 6e 74 20 31 30 | 30 30 30 30 30 29 20 73 |d int 10|00000) s|
|00004970| 74 72 65 61 6d 29 29 29 | 29 0d 09 09 09 28 74 20 |tream)))|)....(t |
|00004980| 28 70 72 69 6e 63 20 22 | 62 69 6c 6c 69 6f 6e 73 |(princ "|billions|
|00004990| 22 29 29 29 29 0d 0d 28 | 64 65 66 75 6e 20 25 66 |"))))..(|defun %f|
|000049a0| 6f 72 6d 61 74 2d 6f 72 | 64 69 6e 61 6c 2d 6e 75 |ormat-or|dinal-nu|
|000049b0| 6d 62 65 72 20 28 69 6e | 74 20 73 74 72 65 61 6d |mber (in|t stream|
|000049c0| 29 0d 09 28 70 72 69 6e | 63 20 22 53 6f 72 72 79 |)..(prin|c "Sorry|
|000049d0| 22 20 73 74 72 65 61 6d | 29 29 0d 0d 28 64 65 66 |" stream|))..(def|
|000049e0| 75 6e 20 25 66 6f 72 6d | 61 74 2d 72 6f 6d 61 6e |un %form|at-roman|
|000049f0| 2d 6e 75 6d 65 72 61 6c | 20 28 69 6e 74 20 73 74 |-numeral| (int st|
|00004a00| 72 65 61 6d 29 0d 09 28 | 70 72 69 6e 63 20 22 53 |ream)..(|princ "S|
|00004a10| 6f 72 72 79 22 20 73 74 | 72 65 61 6d 29 29 0d 0d |orry" st|ream))..|
|00004a20| 28 64 65 66 75 6e 20 25 | 66 6f 72 6d 61 74 2d 6f |(defun %|format-o|
|00004a30| 6c 64 2d 72 6f 6d 61 6e | 2d 6e 75 6d 65 72 61 6c |ld-roman|-numeral|
|00004a40| 20 28 69 6e 74 20 73 74 | 72 65 61 6d 29 0d 09 28 | (int st|ream)..(|
|00004a50| 70 72 69 6e 63 20 22 53 | 6f 72 72 79 22 20 73 74 |princ "S|orry" st|
|00004a60| 72 65 61 6d 29 29 0d 0d | 0d 0d 0d 0d 0d 0d 0d 0d |ream))..|........|
|00004a70| 0d 0d 0d 0d 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004a80| 00 00 01 00 00 00 01 6e | 00 00 00 6e 00 00 00 3e |.......n|...n...>|
|00004a90| 20 61 6c 6c 20 67 6f 6f | 64 20 6f 6c 64 20 42 6f | all goo|d old Bo|
|00004aa0| 6f 6d 65 72 61 6e 67 20 | 75 73 65 72 73 2c 20 77 |omerang |users, w|
|00004ab0| 0b 66 6f 72 6d 61 74 2e | 6c 69 73 70 02 00 00 00 |.format.|lisp....|
|00004ac0| 54 45 58 54 52 4f 53 41 | 01 00 ff ff ff ff 00 00 |TEXTROSA|........|
|00004ad0| 00 00 54 45 58 54 52 4f | 53 41 01 00 ff ff ff ff |..TEXTRO|SA......|
|00004ae0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004af0| 00 00 a9 4f 01 1f 00 00 | 49 f4 00 00 01 ac 00 29 |...O....|I......)|
|00004b00| 41 4c 52 54 00 01 01 52 | 43 44 45 46 00 00 01 6a |ALRT...R|CDEF...j|
|00004b10| 43 55 52 53 00 04 01 76 | 44 4c 4f 47 00 0b 01 b2 |CURS...v|DLOG....|
|00004b20| 46 52 45 46 00 03 02 42 | 49 43 4e 23 00 04 02 72 |FREF...B|ICN#...r|
|00004b30| 4c 44 45 46 00 01 02 ae | 6d 61 63 68 00 00 02 c6 |LDEF....|mach....|
|00004b40| 4d 45 4e 55 00 08 02 d2 | 50 49 43 54 00 04 03 3e |MENU....|PICT...>|
|00004b50| 50 52 4f 43 00 09 03 7a | 53 49 43 4e 00 04 03 f2 |PROC...z|SICN....|
|00004b60| 53 54 52 20 00 04 04 2e | 53 54 52 23 00 11 04 6a |STR ....|STR#...j|
|00004b70| 73 55 50 4c 00 09 05 42 | 63 69 63 6e 00 02 05 ba |sUPL...B|cicn....|
|00004b80| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 00 00 00 |...H..Mo|naco....|
|00004b90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004ba0| 00 00 00 00 00 00 00 06 | 00 04 00 8c 00 0b 01 8d |........|........|
|00004bb0| 02 34 00 8c 00 0b 01 8d | 02 34 a9 b7 f4 90 00 00 |.4......|.4......|
|00004bc0| 00 00 00 00 00 42 00 00 | 00 00 00 00 00 00 00 1e |.....B..|........|
|00004bd0| 00 8c 00 0b 01 8d 02 34 | 00 8c 00 0b 01 8d 02 34 |.......4|.......4|
|00004be0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004bf0| 01 00 00 00 01 6e 00 00 | 00 6e 00 00 00 3e 00 ff |.....n..|.n...>..|
|00004c00| 03 38 1a 14 00 00 00 1c | 00 3e 00 00 4d 50 53 52 |.8......|.>..MPSR|
|00004c10| 00 01 00 0a 03 ed ff ff | 00 00 00 00 00 00 00 00 |........|........|
|00004c20| 03 f0 ff ff 00 00 00 4c | 01 01 5b 5c 00 00 00 00 |.......L|..[\....|
|00004c30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004c40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004c50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004c60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004c70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+